{
    "contractName": "PrimaryIssueManager",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "investor",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "securitySubscription",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "allotedAmount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                }
            ],
            "name": "allotments",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                }
            ],
            "name": "closures",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "platform",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "collection",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                }
            ],
            "name": "feecollection",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "platform",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "provider",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "tokenOffered",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "underwritten",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "earnings",
                    "type": "uint256"
                }
            ],
            "name": "marketmakers",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "party",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "offered",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amountOffered",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "tomatch",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amountDesired",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "minAmount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "isin",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "minimumOrderSize",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "string",
                    "name": "offeringDocs",
                    "type": "string"
                }
            ],
            "name": "offers",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "investor",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "securitySubscription",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "refundAmount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                }
            ],
            "name": "refunds",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "liquidityProvider",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "underwritingFee",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "issuer",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "subscription",
                    "type": "uint256"
                }
            ],
            "name": "settlements",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "investor",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "cashSwapped",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "securitySwapped",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "bool",
                    "name": "subscription",
                    "type": "bool"
                }
            ],
            "name": "subscribers",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_factory",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_swapFeePercentage",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_vault",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_products",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_liquidity",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_client",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_distribution",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_fee",
                    "type": "uint256"
                }
            ],
            "name": "setFee",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "owned",
                    "type": "address"
                },
                {
                    "internalType": "bytes32",
                    "name": "isin",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "offered",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "tomatch",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "desired",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "min",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "internalType": "string",
                    "name": "docs",
                    "type": "string"
                }
            ],
            "name": "offer",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "owned",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "tomatch",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "minOrderSize",
                    "type": "uint256"
                }
            ],
            "name": "setOfferTerms",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "owned",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "tomatch",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "swapfee",
                    "type": "uint256"
                }
            ],
            "name": "setIssuingFee",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                }
            ],
            "name": "getIssuingFee",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "offered",
                    "type": "address"
                }
            ],
            "name": "getOffered",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "offered",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "amountOffered",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "amountDesired",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "min",
                            "type": "uint256"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "uint256",
                            "name": "minimumOrderSize",
                            "type": "uint256"
                        },
                        {
                            "internalType": "string",
                            "name": "offeringdocs",
                            "type": "string"
                        }
                    ],
                    "internalType": "struct IMarketMaker.token[]",
                    "name": "",
                    "type": "tuple[]"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_owned",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_tomatch",
                    "type": "address"
                }
            ],
            "name": "getOfferMade",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "offered",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "amountOffered",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "amountDesired",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "min",
                            "type": "uint256"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "uint256",
                            "name": "minimumOrderSize",
                            "type": "uint256"
                        },
                        {
                            "internalType": "string",
                            "name": "offeringdocs",
                            "type": "string"
                        }
                    ],
                    "internalType": "struct IMarketMaker.token[]",
                    "name": "",
                    "type": "tuple[]"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_security",
                    "type": "address"
                }
            ],
            "name": "getLiquidityProviders",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "owner",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "tokenOffered",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "underwritten",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "subscribed",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "earned",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct IMarketMaker.lp[]",
                    "name": "",
                    "type": "tuple[]"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_amount",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_token",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_manager",
                    "type": "address"
                }
            ],
            "name": "stake",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_token",
                    "type": "address"
                }
            ],
            "name": "getAllotedStake",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "cutoffTime",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "issuer",
                    "type": "address"
                }
            ],
            "name": "issue",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "asset",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "cAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "investor",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "sAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "bool",
                    "name": "paidIn",
                    "type": "bool"
                }
            ],
            "name": "subscribe",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                }
            ],
            "name": "getSubscribers",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "investor",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "asset",
                            "type": "address"
                        },
                        {
                            "internalType": "string",
                            "name": "name",
                            "type": "string"
                        },
                        {
                            "internalType": "uint256",
                            "name": "amount",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "traded",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct IMarketMaker.subscriptions[]",
                    "name": "",
                    "type": "tuple[]"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                }
            ],
            "name": "close",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "poolid",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "investor",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "amnt",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "asset",
                    "type": "address"
                }
            ],
            "name": "accept",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "poolid",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "investor",
                    "type": "address"
                }
            ],
            "name": "reject",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                }
            ],
            "name": "settle",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_token",
                    "type": "address"
                }
            ],
            "name": "getIssuingFeeCollected",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "getOwner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.7.1+commit.f4a555be\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"securitySubscription\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allotedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"allotments\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"closures\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"platform\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collection\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"feecollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"platform\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenOffered\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"underwritten\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"earnings\",\"type\":\"uint256\"}],\"name\":\"marketmakers\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"party\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"offered\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountOffered\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tomatch\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountDesired\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"isin\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minimumOrderSize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"offeringDocs\",\"type\":\"string\"}],\"name\":\"offers\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"securitySubscription\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"refundAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"refunds\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"liquidityProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"underwritingFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"subscription\",\"type\":\"uint256\"}],\"name\":\"settlements\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cashSwapped\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"securitySwapped\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"subscription\",\"type\":\"bool\"}],\"name\":\"subscribers\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amnt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"}],\"name\":\"accept\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"getAllotedStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getIssuingFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"getIssuingFeeCollected\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_security\",\"type\":\"address\"}],\"name\":\"getLiquidityProviders\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOffered\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"underwritten\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"subscribed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"earned\",\"type\":\"uint256\"}],\"internalType\":\"struct IMarketMaker.lp[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owned\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tomatch\",\"type\":\"address\"}],\"name\":\"getOfferMade\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"offered\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOffered\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"isin\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"minimumOrderSize\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"offeringdocs\",\"type\":\"string\"}],\"internalType\":\"struct IMarketMaker.token[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"offered\",\"type\":\"address\"}],\"name\":\"getOffered\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"offered\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOffered\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"isin\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"minimumOrderSize\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"offeringdocs\",\"type\":\"string\"}],\"internalType\":\"struct IMarketMaker.token[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getSubscribers\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"traded\",\"type\":\"uint256\"}],\"internalType\":\"struct IMarketMaker.subscriptions[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_swapFeePercentage\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_products\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_liquidity\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_client\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_distribution\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"cutoffTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"}],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owned\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"isin\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"offered\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tomatch\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"desired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"docs\",\"type\":\"string\"}],\"name\":\"offer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolid\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"}],\"name\":\"reject\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"}],\"name\":\"setFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owned\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tomatch\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"swapfee\",\"type\":\"uint256\"}],\"name\":\"setIssuingFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owned\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tomatch\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minOrderSize\",\"type\":\"uint256\"}],\"name\":\"setOfferTerms\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"settle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"cAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"sAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"paidIn\",\"type\":\"bool\"}],\"name\":\"subscribe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"accept(bytes32,address,uint256,address)\":{\"params\":{\"amnt\":\"amount of investment (subscription capital) accepted by issuer for which allotment of security tokens are made to investor\",\"asset\":\"address of asset which is used by investor to subscribe to the issue\",\"investor\":\"address of investor (subscriber)\",\"poolid\":\"identifier of primary issue pool in which subscription is made by investor\"}},\"close(address)\":{\"params\":{\"security\":\"address of security token\"}},\"getAllotedStake(address)\":{\"params\":{\"_token\":\"address of token allocated earlier to asset manager (message sender)\"}},\"getLiquidityProviders(address)\":{\"params\":{\"_security\":\"identifier for the security token offered\"}},\"getOfferMade(address,address)\":{\"params\":{\"_owned\":\"address of token offered\",\"_tomatch\":\"address of token to match\"}},\"getOffered(address)\":{\"params\":{\"offered\":\"address of offered token\"}},\"getSubscribers(bytes32)\":{\"params\":{\"poolId\":\"identifier for a primary issue pool for which subscribers are to be returned\"}},\"initialize(address,uint256,address,address,address,address,address)\":{\"params\":{\"_factory\":\"reference to the primary issue pool factory contract\",\"_products\":\"reference to the Verified Products contract that this contract reports created primary issue pools to\",\"_swapFeePercentage\":\"percentage of trading fee to be charged by the asset manager\",\"_vault\":\"reference to the Balancer vault\"}},\"issue(address,uint256,address)\":{\"params\":{\"cutoffTime\":\"time in milliseconds by when offer closes\",\"security\":\"security offered to the primary issue pool\"}},\"offer(address,bytes32,uint256,address,uint256,uint256,address,string)\":{\"params\":{\"desired\":\"is the amount required of the liquidity token to be paired\",\"docs\":\"is the ipfs address of the offering docs\",\"isin\":\"is the identifier for the security token offered\",\"min\":\"is the minimum amount to be swapped of the 'offered' token \",\"offered\":\"is the amount offered\",\"owned\":\"is the security or settlement token on offer \",\"owner\":\"is the current holder of the owned token that is offered\",\"tomatch\":\"is the liquidity token that is required to be paired\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"reject(bytes32,address)\":{\"params\":{\"investor\":\"address of investor (subscriber)\",\"poolid\":\"identifier for primary issue pool to which investor has subscribed\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"settle(bytes32)\":{\"params\":{\"poolId\":\"identifier for primary issue pool\"}},\"stake(uint256,address,address)\":{\"params\":{\"_amount\":\"amount of tokens staked to provide liquidity for underwriting investments in tokenized securities\",\"_manager\":\"address of asset manager\",\"_token\":\"address of token staked\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"accept(bytes32,address,uint256,address)\":{\"notice\":\"Called by issuer to accept subscription to issue by investor\"},\"close(address)\":{\"notice\":\"Called by issuer to close subscription of 'security' issued by it\"},\"getAllotedStake(address)\":{\"notice\":\"Gets liquidity allotted for asset manager (message sender)\"},\"getLiquidityProviders(address)\":{\"notice\":\"Fetches liquidity providers for a security token\"},\"getOfferMade(address,address)\":{\"notice\":\"Gets offer made previously\"},\"getOffered(address)\":{\"notice\":\"Gets tokens to match for offered token\"},\"getSubscribers(bytes32)\":{\"notice\":\"Fetches investors (subscribers) to a primary issue pool\"},\"initialize(address,uint256,address,address,address,address,address)\":{\"notice\":\"Initializes this asset management contract\"},\"issue(address,uint256,address)\":{\"notice\":\"Called by issuer of 'security' token to open an issue which will last till 'cutoffTime'\"},\"offer(address,bytes32,uint256,address,uint256,uint256,address,string)\":{\"notice\":\"Called by market maker and issuer for adding liquidity\"},\"reject(bytes32,address)\":{\"notice\":\"Called by issuer to reject subscription to issue by investor\"},\"settle(bytes32)\":{\"notice\":\"Called by product issuer to settle distribution of fee income arising from investment underwritten in the primary issue pool\"},\"stake(uint256,address,address)\":{\"notice\":\"Called by Liquidity token contract to stake tokens by investors\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/PrimaryIssueManager.sol\":\"PrimaryIssueManager\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@balancer-labs/v2-solidity-utils/contracts/helpers/BalancerErrors.sol\":{\"keccak256\":\"0x14f18d0c0051d5412a250536a9850f2698fe1ede9e4760d94142762a039f053b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://21535a4a50a1f1acf80c543b1e44fc80671787a0364c1e3f0437e7c499f15258\",\"dweb:/ipfs/QmR9EMgjmdQRJHFrmD2Tjb9BqN2rNgvi6je5yh71oxebav\"]},\"@balancer-labs/v2-solidity-utils/contracts/helpers/ISignaturesValidator.sol\":{\"keccak256\":\"0x2fe46b13b7c8bfc6f5c539c0b73d6325813f383f551b71fb6bca8dafd06964e1\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8e651ae7a3a3652c8bb7aaa42c2cce5924310df62a923d9ec50ddb9c850d2995\",\"dweb:/ipfs/QmTHz9y18L5FD7v9GcvxGWSLJuin2KCUEYoARTgz8njce8\"]},\"@balancer-labs/v2-solidity-utils/contracts/helpers/ITemporarilyPausable.sol\":{\"keccak256\":\"0xb3e5b7c63f80b80ef3f0138eac56c397a439bf6b667fc06d5061aa869828b562\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://978d66fba0721a1a67e29a32eaddab8d1f92ab2fb2d611724ea8d0d3c9b0e95b\",\"dweb:/ipfs/QmfG4foZvx3NDZao7d4VvGzL4Uxtk8VWNJXvgo9fiAJxZv\"]},\"@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol\":{\"keccak256\":\"0x38720507bb6c838df83953d1ffa88b97d0e06baefa0e3e387303cb8a090a49f5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://fd74d7d2f8881dcc5a3aa4ce732f84b2cbb15de117e1fc4735a3d58a4062524a\",\"dweb:/ipfs/QmSYxuM8HhMn3oPxZ66PbukDikGPkHs3FLD7miFbky2EfW\"]},\"@balancer-labs/v2-solidity-utils/contracts/math/LogExpMath.sol\":{\"keccak256\":\"0x66c6a4efc58bcc18d11fdc3236ec53f6044944918e86116f3aa3deee1daac8ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5deeae731108f0d2fed1ae8c6bcb2796b5a93f6c260019306d175bd3baa2988\",\"dweb:/ipfs/QmexvLdJbGMSrmaAVrZDaHVfCaAzQpV2ZybQMnfX4zXsPU\"]},\"@balancer-labs/v2-solidity-utils/contracts/math/Math.sol\":{\"keccak256\":\"0xb665c41c5d079058a53d3041d464ca5b6cac21de6a1e9ec514185c85eff2c5fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43c8834672f4fb25263aa8bed735fe6f4cd41d3ccbacfb519dd986a09136ae3f\",\"dweb:/ipfs/QmWiQXi9jiPWAbcBkxA99qfjv1Qx3R1tgZmgbeSsp7j42m\"]},\"@balancer-labs/v2-solidity-utils/contracts/misc/IWETH.sol\":{\"keccak256\":\"0x19a0628bedbe48178a4c90509a40d750d5039677b964ec533a24361a8d97274b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c55887c89f152f00e5d65389061de28fada0e73eb5f41ebd16a3b8e65846cb1a\",\"dweb:/ipfs/QmNbVtaA44BGvKnKiCT4bEtjZu1ZD5ZJ6XrgBDh5qVEGcP\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol\":{\"keccak256\":\"0x4bd56e87f0041ba666a540160962cd9f1eed11164a9a91af180550d69da4c8bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f43b33f08fe77242331b6209b35cf4f40ab38b9a6adae52adbd156603fc7b004\",\"dweb:/ipfs/QmQDr8qkAwrY5yuVizRbeMnNmaJGoVz8fqEdyKeSi7Z8eU\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol\":{\"keccak256\":\"0xd828a935a72a6d182912abba290e4debb8c684c36fd756088f7acb30e0b2bb76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e6ac013b95e9622917c5ad388dc73f0a389a76341597731746e54547aa9de8a\",\"dweb:/ipfs/QmPB8qWcRPZaDsASgQpf5a6i2YrZ4TDV3Ebi25Mn9EAdf4\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol\":{\"keccak256\":\"0x53e476d8641ec8d7502efcfaa666981c22fced87c553cf8bb206790af68798c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3eb7bbe7b8706130bd7c646766bec6d8ffb5792c20aac3b127f2a09aee9d8bc4\",\"dweb:/ipfs/QmcQdUBz6AozKU4rvBYLbZqcKy85fXPkKnhCbnthQi9k61\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeMath.sol\":{\"keccak256\":\"0xafe0542eb14932a66ce6280fbe9991130ead5bbcb7836d0a822fc4a59810c100\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://140c69f688c58bbf08f7b1b6f76dd89d72f9c84a3aab8ad1194679ee0acaa6e6\",\"dweb:/ipfs/QmUCub3NpdGK1U4xjSwsCHNZnRokcM9NMhRtC2kLefYef8\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol\":{\"keccak256\":\"0x70ecf1d48c285d78718bd2e159345677038ed8a81c74444bedd6a5c61af9aff6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8c7c210e449ea5d284abeaaed82e3bb3c203b57d8b3e5dfb6daedf76eaae31d1\",\"dweb:/ipfs/QmfJWLPhCG6PcHNJMLNDbAM6nd2ZVFCexCXvJ9qQmRaNbn\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IAuthorizer.sol\":{\"keccak256\":\"0x792871e208bba1dad291f8d1cffad86f4afa5e2360816bd9c43481f7297155f5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://af8ab65258e294c8ba0a5feee91208789f641181d225364b02123d38d9eec7d0\",\"dweb:/ipfs/Qmb5HUXRaSrHJafwK1H8XRjcCTnAZMShTvBNhr1ovA1j2m\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IFlashLoanRecipient.sol\":{\"keccak256\":\"0x5ceb7a9b209c01659b25898622a2415414e12a7200559e57283fd511fe96c92a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35a6ee6cb389f2675c1b64f9813862d3503524ee05067ba88172c9298d4f5e3c\",\"dweb:/ipfs/QmZGPUaoKfRigdo2U9U3695j9wX97GRSzgiK8c6zhVjjFY\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IProtocolFeesCollector.sol\":{\"keccak256\":\"0xacad6dfbdf2395aeb8b793b3cb5d9ee2702d8d5f667084ff7bfa248f64700f47\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b8a27ce7efd29cb653529a2e2c6a828f5bd973b286dc166d12a8f81426bca68a\",\"dweb:/ipfs/QmPFuddzXwjK58qDG4z1n9S9Yff865yCToAStRbdfWMo1D\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IVault.sol\":{\"keccak256\":\"0x8a0904cb11d6571fdc0051b2de6b675d0e1cf8af45c1a5467d047812f1086223\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://e428d19d1bd18504c5c8a797b0a80515072f4d7fc278df73b9fec0ab8efe155d\",\"dweb:/ipfs/QmYeJPPQKAckBVvuhU9XXiZR4aSrVNu3WcfTmSsXJJYey3\"]},\"project:/contracts/PrimaryIssueManager.sol\":{\"keccak256\":\"0x7ad5f7b1814787b73b9ebee5fd10216067c77af7678d35f471168649a1f013b6\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://02f6b41ecc56f4887dfee5f106b04cf70aea4eca2770e2c8422524ab94f4849d\",\"dweb:/ipfs/QmNqrtwXA2JZrx6UkvWUJCmkK1XAUhdorcbvy4zt4WJbRg\"]},\"project:/contracts/interfaces/IDistribution.sol\":{\"keccak256\":\"0x637a95f6ca8fe45ce42aa1244fa1ec441279c5432f296a71da13a07dfb8c875a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0d646a111fd6511df6c77ce794e51e90860d38899490357a28a618c4096326fd\",\"dweb:/ipfs/QmaBhXZgFm2zw9t7tj6ERhv8iAYpznxz35xefwmFDFdMcy\"]},\"project:/contracts/interfaces/IFactory.sol\":{\"keccak256\":\"0x441c3a2cf365fae2c81f6bf8990efd6406bc20ece65372a83418181ce0008766\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12173165996b7a28c02cc3ca333e7b7371ffa96b07507ad98827a102db64d854\",\"dweb:/ipfs/QmXL1KhBX7GEYqE5sU2Bpeum7MwdoXzjKdQ8Noiq6PwMtt\"]},\"project:/contracts/interfaces/ILiquidity.sol\":{\"keccak256\":\"0x69b3c38babf3f6a6bb7413951883be92504c05cb2a0304dc7ab1d6e39ee09cbe\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://cc4cdb02de69f1848bbff4b2bf3ab66aad28b79cb304b51da1c14a031b1a377e\",\"dweb:/ipfs/QmYomtuf4DCUPKYfwQx9cZXC1CU46VGA8tvyQP41E3J7wX\"]},\"project:/contracts/interfaces/IMarketMaker.sol\":{\"keccak256\":\"0x3b4664d8c5f34ebbf0106685ddb92e3214f216eaa4bda380bfb572e84e9073c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa4e585c5ff0a65da2a31502d748282e8f3ea7df9bed1b5978f347e5c3163890\",\"dweb:/ipfs/QmbfgQu7oVFcP6NrUg9mBaArf5hpsTti98ue1iLKJ4R6Kw\"]},\"project:/contracts/interfaces/IPrimaryIssuePool.sol\":{\"keccak256\":\"0x762effe1543722d7ba17961fd7cd8bce3d2dea14e9af0f15e24943dde7cdcbed\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://a1159a3dc9cbcbea73d916b58185cd508c403493fbcfc43423a527e97c171c95\",\"dweb:/ipfs/QmQqJ9XwtxuYGseKSrR1SG8YNQVYBKVnPUBqW2K6jMZhXz\"]},\"project:/contracts/interfaces/IPrimaryIssuePoolFactory.sol\":{\"keccak256\":\"0x7a709277d8bf104c5a40c6203e0a07342be08a4f748538a9e51acec976af4c7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a80a770ec70e90a9be65872be8b1213b39527b7a704d4f915b80aeeb9847ec4\",\"dweb:/ipfs/QmcpPN8zQzrYMSQoAWTA2ymKteALfY9jMoqUAnV5sSQvsH\"]},\"project:/contracts/interfaces/ISecurity.sol\":{\"keccak256\":\"0xc1682b23224bb0ecd24a4b3012d66518be83b4889fc77d72d1349c6e89edf597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e02d526937045d1b94ea1de574a858c40440f2680a890a026e4c21de553fe3df\",\"dweb:/ipfs/QmdAFt9bHaa22hTDmrApWFLqUodF1jMDoDMLrrJfwodF3v\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0xc07d8f7ca84f495b2c124ca6e6ae8ccccc49360eb7a2de6bf12f8e8ddc32571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7dc9da4650c81341695284d924d73b0b59dd50770e8b27ae9fb8c4b84d63c75\",\"dweb:/ipfs/QmXvSwN1eqhrtDVPozZ8FF6LYhMF6hFJFpRuZbd9mo2Zwd\"]}},\"version\":1}",
    "bytecode": "0x6080604052600060035534801561001557600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36158ae80620000656000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ac316f1116100c3578063b329620b1161007c578063b329620b146102b3578063bfa0caa7146102c6578063c74073a1146102e6578063f2fde38b146102f9578063f3ea66ff1461030c578063f7efef101461031f5761014d565b80638ac316f11461023f5780638da5cb5b146102525780639701bbc31461025a578063987757dd1461027a5780639f2a0ccc1461028d578063a7d545db146102a05761014d565b80636c78c894116101155780636c78c894146101c95780636d78f47a146101dc578063715018a6146101ef57806388c4b6ee146101f7578063893d20e8146102175780638a0c62f11461022c5761014d565b80633f0990281461015257806341c8b2681461016757806359d3b2cd1461017a5780635bccd177146101a357806369fe0e2d146101b6575b600080fd5b610165610160366004614d8e565b610332565b005b610165610175366004614bea565b6107cb565b61018d610188366004614a14565b61085d565b60405161019a91906153cc565b60405180910390f35b61018d6101b1366004614a14565b610885565b6101656101c4366004614d5e565b6109b8565b6101656101d7366004614a84565b6109c9565b6101656101ea366004614ba9565b610afd565b610165610bbc565b61020a610205366004614a14565b610c12565b60405161019a91906151f8565b61021f610cc1565b60405161019a91906150a0565b61016561023a366004614e1c565b610cd0565b61016561024d366004614db2565b610dac565b61021f6111e0565b61026d610268366004614a14565b6111ef565b60405161019a919061531a565b610165610288366004614d5e565b6113fe565b61018d61029b366004614a4c565b611561565b6101656102ae366004614f05565b61158e565b6101656102c1366004614a84565b611619565b6102d96102d4366004614d5e565b61174f565b60405161019a9190615278565b6101656102f4366004614a14565b61194a565b610165610307366004614a14565b611de7565b61016561031a366004614ad4565b611e65565b61026d61032d366004614a4c565b6123b8565b6000828152601760205260408082205460048054925163e0a87de160e01b815233946001600160a01b03938416949093169163e0a87de191610376918691016150a0565b60206040518083038186803b15801561038e57600080fd5b505afa1580156103a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c69190614a30565b9050826001600160a01b0316816001600160a01b0316146104025760405162461bcd60e51b81526004016103f9906155f0565b60405180910390fd5b60008581526014602090815260408083206001600160a01b0388168452909152902054806104425760405162461bcd60e51b81526004016103f990615680565b60008681526013602052604090208054600019909201916001600160a01b03871691908390811061046f57fe5b60009182526020909120600590910201546001600160a01b0316146104a65760405162461bcd60e51b81526004016103f99061548a565b6000868152601760209081526040808320546013909252822080546001600160a01b039092169291849081106104d857fe5b60009182526020808320600160059093020191909101548a83526015825260408084206001600160a01b03909216808552918352808420548c855260139093529092208054929350610545928690811061052e57fe5b9060005260206000209060050201600301546125d4565b60008981526015602090815260408083206001600160a01b03861684528252808320939093558a82526013905220805489917fbd39de70db9f51c606065fcb0157b3d97984d1ec579fa55b555e78eb8460af7e918a918691889081106105a757fe5b90600052602060002090600502016004015485601360008f815260200190815260200160002089815481106105d857fe5b906000526020600020906005020160030154426040516105fd969594939291906151a5565b60405180910390a260008881526014602090815260408083206001600160a01b03808c168552908352818420849055858116808552600b8452828520918616855292528220805491926323b872dd928b92919061065657fe5b600091825260208083206008909202909101548d83526013909152604090912080546001600160a01b03909216918890811061068e57fe5b9060005260206000209060050201600401546040518463ffffffff1660e01b81526004016106be939291906150b4565b602060405180830381600087803b1580156106d857600080fd5b505af11580156106ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107109190614d42565b50806001600160a01b031663a9059cbb88601360008c8152602001908152602001600020868154811061073f57fe5b9060005260206000209060050201600301546040518363ffffffff1660e01b815260040161076e9291906151df565b602060405180830381600087803b15801561078857600080fd5b505af115801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c09190614d42565b505050505050505050565b6107e9336107d76111e0565b6001600160a01b0316146101aa6125ea565b600180546001600160a01b03199081166001600160a01b03998a16179091556002805482169689169690961790955560048054861694881694909417909355600580548516918716919091179055600393909355600680548316938516939093179092556007805490911691909216179055565b3360009081526018602090815260408083206001600160a01b03949094168352929052205490565b6007546000906001600160a01b031633146108b25760405162461bcd60e51b81526004016103f990615582565b6001600160a01b0382166000908152601960205260409020546108d581806125d4565b6001600160a01b038085166000818152601960205260409081902093909355600754925163a9059cbb60e01b8152909263a9059cbb9261091c9291169085906004016151df565b602060405180830381600087803b15801561093657600080fd5b505af115801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e9190614d42565b50306001600160a01b03167feaad90c8664cdf61d60bd7ba6745a881fd1c38d9f4ff0b373b4365cdeeb0f9e882426040516109aa9291906157b0565b60405180910390a292915050565b6109c4336107d76111e0565b600355565b6004805460405163e0a87de160e01b8152339286926000926001600160a01b039091169163e0a87de1916109ff918691016150a0565b60206040518083038186803b158015610a1757600080fd5b505afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4f9190614a30565b9050826001600160a01b0316816001600160a01b031614610a825760405162461bcd60e51b81526004016103f9906155f0565b6001600160a01b038087166000908152600b60209081526040808320938916835292905290812080548290610ab357fe5b6000918252602090912060089091020180549091506001600160a01b0389811691161415610af357610aed85610ae8896125fc565b612697565b60068201555b5050505050505050565b600554604051634427673360e01b815233916000916001600160a01b0390911690634427673390610b329085906004016150a0565b60606040518083038186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b829190614e65565b505090508061044560f41b14610baa5760405162461bcd60e51b81526004016103f9906155b9565b610bb58585856126aa565b5050505050565b610bc8336107d76111e0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610cb65760008481526020908190206040805160a0810182526005860290920180546001600160a01b03908116845260018083015490911684860152600282015492840192909252600381015460608401526004015460808301529083529092019101610c4a565b505050509050919050565b6000610ccb6111e0565b905090565b6000848152601760205260408082205460048054925163e0a87de160e01b815233946001600160a01b03938416949093169163e0a87de191610d14918691016150a0565b60206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190614a30565b9050826001600160a01b0316816001600160a01b031614610d975760405162461bcd60e51b81526004016103f9906155f0565b610da387878787612d49565b50505050505050565b600087815260166020526040902054879033906001600160a01b03168114610de65760405162461bcd60e51b81526004016103f9906156ad565b60008981526014602090815260408083206001600160a01b038916845290915281205490610e1c88610e178b6125fc565b61327e565b60008c815260176020526040908190205490519192506001600160a01b0316907f03e4d401f7446bde326c5951f40797b975fbe06e73f36b2a41646ea680cc40f290610e75908e908b908e9087908d9042908e90615411565b60405180910390a284156110d75760008b81526015602090815260408083206001600160a01b038d168452909152902054610eb0908261328a565b60008c81526015602090815260408083206001600160a01b038e1684529091529020558161105657610ee0614664565b6040518060a00160405280896001600160a01b031681526020018b6001600160a01b031681526020018b6001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015610f4257600080fd5b505afa158015610f56573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f7e9190810190614e92565b8152602001838152602001610f9689610e178f6125fc565b905260008d815260136020908152604080832080546001818101835591855293839020855160059095020180546001600160a01b039586166001600160a01b0319918216178255848701519282018054939096169216919091179093558301518051939450849361100d92600285019201906146a5565b50606082015160038201556080909101516004909101555060008b815260136020908152604080832054601483528184206001600160a01b038c168552909252909120556110d2565b60008b81526013602052604081208054600019850190811061107457fe5b6000918252602090912060059091020180549091506001600160a01b03898116911614156110d0576110aa81600301548361328a565b600382015560048101546110ca906110c589610e178f6125fc565b61328a565b60048201555b505b6111d3565b81156111d35760008b8152601360205260408120805460001985019081106110fb57fe5b6000918252602090912060059091020180549091506001600160a01b0389811691161415611157576111318160030154836125d4565b600382015560048101546111519061114c89610e178f6125fc565b6125d4565b60048201555b60008c81526015602090815260408083206001600160a01b038e16845290915290205482116111d15760008c81526015602090815260408083206001600160a01b038e1684529091529020546111ad90836125d4565b60008d81526015602090815260408083206001600160a01b038f1684529091529020555b505b5050505050505050505050565b6000546001600160a01b031690565b600554604051634427673360e01b815260609133916000916001600160a01b0316906344276733906112259085906004016150a0565b60606040518083038186803b15801561123d57600080fd5b505afa158015611251573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112759190614e65565b505090508061414d60f01b148061129057508061044560f41b145b6112ac5760405162461bcd60e51b81526004016103f9906154f8565b6001600160a01b0384166000908152600a6020908152604080832080548251818502810185019093528083529193909284015b828210156113f15760008481526020908190206040805161010080820183526008870290930180546001600160a01b03908116835260018083015490911683870152600280830154848601526003830154606085015260048301546080850152600583015460a0850152600683015460c08501526007830180548651938116159097026000190190961604601f81018790048702820187019094528381529194909360e086019390918301828280156113d95780601f106113ae576101008083540402835291602001916113d9565b820191906000526020600020905b8154815290600101906020018083116113bc57829003601f168201915b505050505081525050815260200190600101906112df565b5050505092505050919050565b6000818152601760205260408082205460048054925163e0a87de160e01b815233946001600160a01b03938416949093169163e0a87de191611442918691016150a0565b60206040518083038186803b15801561145a57600080fd5b505afa15801561146e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114929190614a30565b9050826001600160a01b0316816001600160a01b0316146114c55760405162461bcd60e51b81526004016103f9906155f0565b600760009054906101000a90046001600160a01b03166001600160a01b0316637d8e98316040518163ffffffff1660e01b815260040160806040518083038186803b15801561151357600080fd5b505afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190614f3b565b50601b555061155b90508461329c565b50505050565b6001600160a01b038083166000908152601a60209081526040808320938516835292905220545b92915050565b60065433906001600160a01b031681146115ba5760405162461bcd60e51b81526004016103f990615524565b6001600160a01b038083166000908152601860209081526040808320938716835292905220546115ea908561328a565b6001600160a01b0392831660009081526018602090815260408083209690951682529490945291909220555050565b600554604051634427673360e01b815233916000916001600160a01b039091169063442767339061164e9085906004016150a0565b60606040518083038186803b15801561166657600080fd5b505afa15801561167a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169e9190614e65565b505090508061044560f41b146116c65760405162461bcd60e51b81526004016103f9906155b9565b6001600160a01b038086166000908152600b602090815260408083209388168352929052908120805482906116f757fe5b6000918252602090912060089091020180549091506001600160a01b0388811691161415610da3575050506001600160a01b039283166000908152601a60209081526040808320949095168252929092529190205550565b6000818152601760205260408082205460048054925163e0a87de160e01b815260609433946001600160a01b0394851694919391169163e0a87de191611797918691016150a0565b60206040518083038186803b1580156117af57600080fd5b505afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190614a30565b9050826001600160a01b0316816001600160a01b03161461181a5760405162461bcd60e51b81526004016103f9906155f0565b600085815260136020908152604080832080548251818502810185019093528083529193909284015b8282101561193c5760008481526020908190206040805160a0810182526005860290920180546001600160a01b039081168452600180830154909116848601526002808301805485516101009482161594909402600019011691909104601f81018790048702830187018552808352949592949386019391929091908301828280156119105780601f106118e557610100808354040283529160200191611910565b820191906000526020600020905b8154815290600101906020018083116118f357829003601f168201915b505050505081526020016003820154815260200160048201548152505081526020019060010190611843565b505050509350505050919050565b6004805460405163e0a87de160e01b8152339284926000926001600160a01b039091169163e0a87de191611980918691016150a0565b60206040518083038186803b15801561199857600080fd5b505afa1580156119ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d09190614a30565b9050826001600160a01b0316816001600160a01b031614611a035760405162461bcd60e51b81526004016103f9906155f0565b6001600160a01b0384166000908152601260205260408120600101548190815b81811015610af3576001600160a01b0388166000908152601260205260409020600101805482908110611a5257fe5b600091825260208083209091015480835260168252604092839020548351636945c1fd60e01b815293519196506001600160a01b031692636945c1fd926004808301939192829003018186803b158015611aab57600080fd5b505afa158015611abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae39190614a30565b600254604051631f29a8cd60e31b81529195506060916001600160a01b039091169063f94d466890611b199087906004016153cc565b60006040518083038186803b158015611b3157600080fd5b505afa158015611b45573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b6d9190810190614c76565b505090506060611b7c82613963565b90506060825167ffffffffffffffff81118015611b9857600080fd5b50604051908082528060200260200182016040528015611bc2578160200160208202803683370190505b509050611bcd614723565b60405180608001604052808481526020018381526020016001620f42406dffffffffffffffffffffffffffff03604051602001611c0b92919061544f565b60408051808303601f1901815291815290825260006020909201919091526002549051638bdb391360e01b81529192506001600160a01b031690638bdb391390611c5f908a903090819087906004016153d5565b600060405180830381600087803b158015611c7957600080fd5b505af1158015611c8d573d6000803e3d6000fd5b50505050867f56eadf552f1d54f8f73fbbf801097c1c4d7bb3d77d5ac2bebfd0a8151642d55a8d42604051611cc39291906151df565b60405180910390a26001600160a01b03808d16600081815260126020526040908190206002015490516370a0823160e01b8152919263a9059cbb9291169083906370a0823190611d179030906004016150a0565b60206040518083038186803b158015611d2f57600080fd5b505afa158015611d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d679190614d76565b6040518363ffffffff1660e01b8152600401611d849291906151df565b602060405180830381600087803b158015611d9e57600080fd5b505af1158015611db2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd69190614d42565b505060019093019250611a23915050565b611df3336107d76111e0565b611e0a6001600160a01b03821615156101ab6125ea565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600754600160a01b900460ff1615611e8f5760405162461bcd60e51b81526004016103f99061555b565b6007805460ff60a01b1916600160a01b179055600554604051634427673360e01b81526000916001600160a01b031690634427673390611ed39033906004016150a0565b60606040518083038186803b158015611eeb57600080fd5b505afa158015611eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f239190614e65565b505060048054604051633ea6c82d60e01b81529293506001600160a01b031691633ea6c82d91611f55918d91016150a0565b60206040518083038186803b158015611f6d57600080fd5b505afa158015611f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa59190614d42565b151560011480611fb957508061414d60f01b145b611fd55760405162461bcd60e51b81526004016103f99061561c565b8061414d60f01b141561228a573360009081526018602090815260408083206001600160a01b038d168085529252918290205491516370a0823160e01b81526370a08231906120289030906004016150a0565b60206040518083038186803b15801561204057600080fd5b505afa158015612054573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120789190614d76565b101580156120a957503360009081526018602090815260408083206001600160a01b038d1684529091529020548711155b15612118573360009081526018602090815260408083206001600160a01b038d1684529091529020546120dc9088613966565b3360008181526018602090815260408083206001600160a01b038f168452909152902091909155612113908a8a8a8a8a8a89613974565b61222e565b6040516370a0823160e01b815287906001600160a01b038b16906370a08231906121469033906004016150a0565b60206040518083038186803b15801561215e57600080fd5b505afa158015612172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121969190614d76565b1061222e576040516323b872dd60e01b81526001600160a01b038a16906323b872dd906121cb90339030908c906004016150b4565b602060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221d9190614d42565b5061222e338a8a8a8a8a8a89613974565b886001600160a01b03167f647111dfd26aa614f3a039ffe52dcfcd383ba2900b9ed21cde54b318f92707a733898989898e670de0b6b3a76400008a60405161227d9897969594939291906150d8565b60405180910390a26123a0565b6040516370a0823160e01b815287906001600160a01b038b16906370a08231906122b89087906004016150a0565b60206040518083038186803b1580156122d057600080fd5b505afa1580156122e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123089190614d76565b106123a0576040516323b872dd60e01b81526001600160a01b038a16906323b872dd9061233d90869030908c906004016150b4565b602060405180830381600087803b15801561235757600080fd5b505af115801561236b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238f9190614d42565b506123a0838a8a8a8a8a8a89613974565b50506007805460ff60a01b1916905550505050505050565b600554604051634427673360e01b815260609133916000916001600160a01b0316906344276733906123ee9085906004016150a0565b60606040518083038186803b15801561240657600080fd5b505afa15801561241a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243e9190614e65565b505090508061414d60f01b148061245957508061044560f41b145b6124755760405162461bcd60e51b81526004016103f9906154f8565b6001600160a01b038086166000908152600b60209081526040808320938816835292815282822080548451818402810184019095528085529092909184015b828210156125c65760008481526020908190206040805161010080820183526008870290930180546001600160a01b03908116835260018083015490911683870152600280830154848601526003830154606085015260048301546080850152600583015460a0850152600683015460c08501526007830180548651938116159097026000190190961604601f81018790048702820187019094528381529194909360e086019390918301828280156125ae5780601f10612583576101008083540402835291602001916125ae565b820191906000526020600020905b81548152906001019060200180831161259157829003601f168201915b505050505081525050815260200190600101906124b4565b505050509250505092915050565b60006125e48383111560016125ea565b50900390565b816125f8576125f881613cb5565b5050565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561263857600080fd5b505afa15801561264c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126709190614f70565b60ff16905060006126826012836125d4565b600a0a670de0b6b3a764000002949350505050565b60006126a38383613d08565b9392505050565b600080600080600080886001600160a01b031660086001600960008d6001600160a01b03166001600160a01b031681526020019081526020016000205403815481106126f257fe5b6000918252602090912001546001600160a01b031614156107c05760005b600854811015612cff57896001600160a01b03166008828154811061273157fe5b6000918252602090912001546001600160a01b031614612cf7576008818154811061275857fe5b60009182526020808320909101546001600160a01b03908116808452600b83526040808520928f16855291909252822054975095505b86811015612cf5576001600160a01b03808c166000908152600b60209081526040808320938a16835292905290812080549091906127c857fe5b60009182526020808320600260089093020191909101546001600160a01b03808f168452600b83526040808520918b16855292529082208054919750919061280c57fe5b9060005260206000209060080201600401549350600b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008c6001600160a01b03166001600160a01b03168152602001908152602001600020818154811061287357fe5b9060005260206000209060080201600201549250600b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008c6001600160a01b03166001600160a01b0316815260200190815260200160002081815481106128da57fe5b60009182526020909120600890910201546001600160a01b031697508215612ced576001600160a01b038087166000908152600b60209081526040808320938f16835292905220805461294c9185918490811061293357fe5b9060005260206000209060080201600301546001613d3e565b61295885876001613d3e565b11612c96576001600160a01b03808c166000908152600d60209081526040808320938a16835292905220546129db576001600160a01b038b81166000818152600c6020908152604080832080546001810182558185528385200180546001600160a01b031916968d1696871790559383529254600d825283832094835293905220555b6001600160a01b03808c166000908152600e60209081526040808320938a1683529290522054612a0d85876001613d3e565b1080612a3c57506001600160a01b03808c166000908152600e60209081526040808320938a1683529290522054155b15612a8a57612a63612a5185610ae8896125fc565b612a5e87610ae88f6125fc565b613d66565b6001600160a01b03808d166000908152600e60209081526040808320938b16835292905220555b6001600160a01b038b81166000908152600e60209081526040808320938a168352929052206002810186905560030154612ac4908461328a565b6001600160a01b03808d166000908152600e60209081526040808320938b1683529290522060030155612af561474d565b6040518060a001604052808a6001600160a01b03168152602001886001600160a01b031681526020018581526020016000815260200160008152509050600f60008d6001600160a01b03166001600160a01b0316815260200190815260200160002081908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015550508b6001600160a01b03167f9426088b1d278a7af8f917da4fae1aa63b954ba475dd3b6ba9c6539508c29d7c308b8a8886606001518760800151604051612c469695949392919061516c565b60405180910390a26001600160a01b038c16600090815260106020526040902054612c71908561328a565b6001600160a01b038d166000908152601060205260408120919091559350612ced9050565b6001600160a01b038089166000908152601860209081526040808320938a1683529290522054612cc6908461328a565b6001600160a01b03808a166000908152601860209081526040808320938b16835292905220555b60010161278e565b505b600101612710565b506001600160a01b0389166000908152600c6020526040902054156107c057612d288989613db7565b6001600160a01b0389166000908152600c602052604081206107c09161478e565b60008481526014602090815260408083206001600160a01b038716845290915290205480612d895760405162461bcd60e51b81526004016103f990615680565b60008581526013602052604090208054600019909201916001600160a01b038616919083908110612db657fe5b60009182526020909120600590910201546001600160a01b031614612ded5760405162461bcd60e51b81526004016103f9906154c1565b6000858152601360205260409020805484919083908110612e0a57fe5b9060005260206000209060050201600301541015612e3a5760405162461bcd60e51b81526004016103f990615649565b6000858152601660209081526040808320548151632541897f60e01b8152915184938493849384936001600160a01b0390911692632541897f9260048082019391829003018186803b158015612e8f57600080fd5b505afa158015612ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec79190614a30565b9050612f0288601360008d81526020019081526020016000208881548110612eeb57fe5b906000526020600020906005020160030154613d66565b60008b81526013602052604090208054919650612f3b9188908110612f2357fe5b906000526020600020906005020160030154896125d4565b60008b8152601360205260409020805488908110612f5557fe5b906000526020600020906005020160030181905550601360008b81526020019081526020016000208681548110612f8857fe5b9060005260206000209060050201600301549150613008601360008c81526020019081526020016000208781548110612fbd57fe5b90600052602060002090600502016004015461114c601360008e81526020019081526020016000208981548110612ff057fe5b90600052602060002090600502016004015488613d08565b925061302f846110c5601360008e81526020019081526020016000208981548110612ff057fe5b60008b81526015602090815260408083206001600160a01b038c16845290915290205490945061305f90836125d4565b60008b81526015602090815260408083206001600160a01b038c1684529091529081902091909155518a907fbd39de70db9f51c606065fcb0157b3d97984d1ec579fa55b555e78eb8460af7e906130c1908c90859088908d90899042906151a5565b60405180910390a260008a81526014602090815260408083206001600160a01b038d16845290915280822091909155518a907f4bbb221ed2740b5d1fde83b4f627802ff5462a27e60c2edff0b88fdb1ea9b2849061312a908c90859089908d908f9042906151a5565b60405180910390a26001600160a01b038082166000818152600b60209081526040808320948c168352939052918220805491926323b872dd928d92919061316d57fe5b60009182526020909120600890910201546040516001600160e01b031960e085901b1681526131ab92916001600160a01b03169088906004016150b4565b602060405180830381600087803b1580156131c557600080fd5b505af11580156131d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131fd9190614d42565b5060405163a9059cbb60e01b81526001600160a01b0388169063a9059cbb9061322c908c9086906004016151df565b602060405180830381600087803b15801561324657600080fd5b505af115801561325a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d39190614d42565b60006126a38383613d66565b60008282016126a384821015836125ea565b6000818152601660209081526040808320548151636945c1fd60e01b815291516001600160a01b0390911692636945c1fd9260048082019391829003018186803b1580156132e957600080fd5b505afa1580156132fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133219190614a30565b6000838152601760209081526040808320546001600160a01b039081168452600b83528184209085168452909152812080549293509091829061336057fe5b600091825260208083206008909202909101548583526015825260408084206001600160a01b0387811686529352832054911692506133a290610ae8856125fc565b6000858152601760209081526040808320546001600160a01b039081168452601a83528184209088168452909152812054919250901561341d576000858152601760209081526040808320546001600160a01b039081168452601a83528184209088168452909152902054613418908390613d08565b613429565b61342982600354613d08565b905060008060005b6000888152601760209081526040808320546001600160a01b03168352600f90915290205481101561384e576000888152601760209081526040808320546001600160a01b03168352600f909152902080546134ce91908390811061349257fe5b60009182526020808320600260059093020191909101548b8352601782526040808420546001600160a01b031684526010909252912054613d66565b92506134e66134dd8585613d08565b612a5e896125fc565b60065460008a8152601760209081526040808320546001600160a01b039081168452600f909252909120805493955091169163451353f19185918590811061352a57fe5b60009182526020808320600160059093020191909101548d8352601782526040808420546001600160a01b039081168552600f90935290922080549190921691908690811061357557fe5b60009182526020909120600590910201546040516001600160e01b031960e086901b1681526135b29392916001600160a01b031690600401615791565b600060405180830381600087803b1580156135cc57600080fd5b505af11580156135e0573d6000803e3d6000fd5b5050506000898152601760209081526040808320546001600160a01b039081168452600f9092529091208054918a16925063a9059cbb918490811061362157fe5b6000918252602090912060059091020154601b546001600160a01b039091169061364c908690613d08565b6040518363ffffffff1660e01b81526004016136699291906151df565b602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136bb9190614d42565b506000888152601760209081526040808320546001600160a01b03168352600f909152902080546137099190839081106136f157fe5b9060005260206000209060050201600401548361328a565b6000898152601760209081526040808320546001600160a01b03168352600f909152902080548390811061373957fe5b9060005260206000209060050201600401819055506137646134dd8461375f88886125d4565b613d08565b6000898152601760209081526040808320546001600160a01b03168352600f909152902080549194506137b3918390811061379b57fe5b9060005260206000209060050201600301548461328a565b506000888152601760209081526040808320546001600160a01b0316808452600f90925290912080548a927f5c520d8718b066e97bb13ab129eea39c9edcbf16de59770e2e191bc2421070b89290918b91908690811061380f57fe5b600091825260209091206005909102015460405161383e9392916001600160a01b03169088908d908b90615131565b60405180910390a2600101613431565b5061385c83612a5e886125fc565b925061389760196000886001600160a01b03166001600160a01b03168152602001908152602001600020546110c58561114c87601b54613d08565b6001600160a01b0387166000818152601960209081526040808320949094558a8252601581528382208383529052919091205463a9059cbb9087906138dc90876125d4565b6040518363ffffffff1660e01b81526004016138f99291906151df565b602060405180830381600087803b15801561391357600080fd5b505af1158015613927573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394b9190614d42565b506000878152601360205260408120610da3916147af565b90565b60006126a3838360016142b5565b61397c6147d0565b6040518061010001604052808a6001600160a01b03168152602001896001600160a01b03168152602001878152602001858152602001848152602001888152602001670de0b6b3a764000081526020018381525090506000600b60008a6001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b03168152602001908152602001600020805490509050600b60008a6001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002082908060018154018082558091505060019003906000526020600020906008020160009091909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007019080519060200190613b3c9291906146a5565b5050506001600160a01b038916600090815260096020526040902054613bb757600880546001810182557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b038c169081179091559054600091825260096020526040909120555b6001600160a01b038087166000818152600a60209081526040808320948e168352600b825280832093835292905220805483908110613bf257fe5b6000918252602080832084546001818101875595855291909320600892830290930180549190920290920180546001600160a01b03199081166001600160a01b039485161782558483015482860180549092169416939093179092556002808201548184015560038083015490840155600480830154908401556005808301549084015560068083015490840155600780830180549395613ca694928601939192908116156101000260001901160461482a565b50505050505050505050505050565b62461bcd60e51b6000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b6000828202613d2c841580613d25575083858381613d2257fe5b04145b60036125ea565b670de0b6b3a764000090049392505050565b600081613d5457613d4f84846142cb565b613d5e565b613d5e84846142eb565b949350505050565b6000613d7582151560046125ea565b82613d8257506000611588565b670de0b6b3a764000083810290613da590858381613d9c57fe5b041460056125ea565b828181613dae57fe5b04915050611588565b6001600160a01b0382166000908152600c6020526040812054905b8181101561155b576001600160a01b0384166000908152600c60205260408120805483908110613dfe57fe5b6000918252602080832091909101546001600160a01b038881168452600e83526040808520919092168085529252909120600281015460039091015491925090613e4661489f565b604080516101808101825260136101408201908152722b32b934b334b2b2102837b7b6102a37b5b2b760691b610160830152815281518083018352600381526215941560ea1b602082810191909152808301919091526001600160a01b03808c16838501819052908816606084018190526000828152600e84528581208282528452858120546080860152918252600b83528482209082529091529182208054919260a0840192613ef357fe5b90600052602060002090600802016006015481526020018481526020016003548152602001888152602001600b60008b6001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b03168152602001908152602001600020600081548110613f7257fe5b6000918252602091829020600760089092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156140085780601f10613fdd57610100808354040283529160200191614008565b820191906000526020600020905b815481529060010190602001808311613feb57829003601f168201915b5050509190925250506002546040516372e0f85360e01b81529192506001600160a01b03808b16926372e0f8539261404692169087906004016151df565b600060405180830381600087803b15801561406057600080fd5b505af1158015614074573d6000803e3d6000fd5b505060015460405163088db13360e21b8152600093506001600160a01b039091169150632236c4cc906140ab9085906004016156d3565b602060405180830381600087803b1580156140c557600080fd5b505af11580156140d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140fd9190614a30565b6001600160a01b03808b166000908152600b60209081526040808320938a16835292905290812080549293509161413057fe5b600091825260208083206008909202909101546001600160a01b038c811684526012835260408085206002810180546001600160a01b03191694841694909417909355918c9055815163038fff2d60e41b81529151908516926338fff2d09260048082019391829003018186803b1580156141aa57600080fd5b505afa1580156141be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141e29190614d76565b6001600160a01b03808c1660008181526012602090815260408083206001908101805491820181558452828420018690558583526016825280832080549589166001600160a01b0319968716179055601790915290208054909216179055905061424f818b88888861431e565b5050506001600160a01b038088166000818152600e60209081526040808320979094168083529681528382208281556001808201849055600282018490556003909101839055928252600d81528382209682529590955290842093909355505001613dd2565b60006142c484841115836125ea565b5050900390565b60006142da82151560046125ea565b8183816142e357fe5b049392505050565b60006142fa82151560046125ea565b8261430757506000611588565b81600184038161431357fe5b046001019050611588565b600254604051631f29a8cd60e31b81526060916001600160a01b03169063f94d46689061434f9089906004016153cc565b60006040518083038186803b15801561436757600080fd5b505afa15801561437b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526143a39190810190614c76565b5050905060606143b282613963565b90506060825167ffffffffffffffff811180156143ce57600080fd5b506040519080825280602002602001820160405280156143f8578160200160208202803683370190505b5060025460405163095ea7b360e01b81529192506001600160a01b038089169263095ea7b39261442e92169088906004016151df565b602060405180830381600087803b15801561444857600080fd5b505af115801561445c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144809190614d42565b5060025460405163095ea7b360e01b81526001600160a01b038981169263095ea7b3926144b5929091169089906004016151df565b602060405180830381600087803b1580156144cf57600080fd5b505af11580156144e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145079190614d42565b5060005b83518110156145ae57876001600160a01b031684828151811061452a57fe5b60200260200101516001600160a01b0316141561455f578582828151811061454e57fe5b6020026020010181815250506145a6565b866001600160a01b031684828151811061457557fe5b60200260200101516001600160a01b031614156145a6578482828151811061459957fe5b6020026020010181815250505b60010161450b565b506145b7614723565b60405180608001604052808481526020018381526020016000846040516020016145e2929190615467565b60408051808303601f190181529181529082526000602090920191909152600254905163172b958560e31b81529192506001600160a01b03169063b95cac2890614636908c903090819087906004016153d5565b600060405180830381600087803b15801561465057600080fd5b505af1158015613ca6573d6000803e3d6000fd5b6040518060a0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106146e657805160ff1916838001178555614713565b82800160010185558215614713579182015b828111156147135782518255916020019190600101906146f8565b5061471f929150614904565b5090565b60405180608001604052806060815260200160608152602001606081526020016000151581525090565b6040518060a0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081525090565b50805460008255906000526020600020908101906147ac9190614904565b50565b50805460008255600502906000526020600020908101906147ac9190614919565b60405180610100016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000801916815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106148635780548555614713565b8280016001018555821561471357600052602060002091601f016020900482015b82811115614713578254825591600101919060010190614884565b604051806101400160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b5b8082111561471f5760008155600101614905565b8082111561471f5780546001600160a01b031990811682556001820180549091169055600061494b6002830182614962565b506000600382018190556004820155600501614919565b50805460018160011615610100020316600290046000825580601f1061498857506147ac565b601f0160209004906000526020600020908101906147ac9190614904565b600082601f8301126149b6578081fd5b81516149c96149c4826157e5565b6157be565b8181529150602080830190848101818402860182018710156149ea57600080fd5b60005b84811015614a09578151845292820192908201906001016149ed565b505050505092915050565b600060208284031215614a25578081fd5b81356126a381615855565b600060208284031215614a41578081fd5b81516126a381615855565b60008060408385031215614a5e578081fd5b8235614a6981615855565b91506020830135614a7981615855565b809150509250929050565b60008060008060808587031215614a99578182fd5b8435614aa481615855565b93506020850135614ab481615855565b92506040850135614ac481615855565b9396929550929360600135925050565b600080600080600080600080610100898b031215614af0578384fd5b8835614afb81615855565b975060208901359650604089013595506060890135614b1981615855565b94506080890135935060a0890135925060c0890135614b3781615855565b915060e089013567ffffffffffffffff811115614b52578182fd5b8901601f81018b13614b62578182fd5b8035614b706149c482615805565b8181528c6020838501011115614b84578384fd5b8160208401602083013783602083830101528093505050509295985092959890939650565b600080600060608486031215614bbd578283fd5b8335614bc881615855565b9250602084013591506040840135614bdf81615855565b809150509250925092565b600080600080600080600060e0888a031215614c04578283fd5b8735614c0f81615855565b9650602088013595506040880135614c2681615855565b94506060880135614c3681615855565b93506080880135614c4681615855565b925060a0880135614c5681615855565b915060c0880135614c6681615855565b8091505092959891949750929550565b600080600060608486031215614c8a578081fd5b835167ffffffffffffffff80821115614ca1578283fd5b818601915086601f830112614cb4578283fd5b8151614cc26149c4826157e5565b80828252602080830192508086018b828387028901011115614ce2578788fd5b8796505b84871015614d0d578051614cf981615855565b845260019690960195928101928101614ce6565b508901519097509350505080821115614d24578283fd5b50614d31868287016149a6565b925050604084015190509250925092565b600060208284031215614d53578081fd5b81516126a38161586a565b600060208284031215614d6f578081fd5b5035919050565b600060208284031215614d87578081fd5b5051919050565b60008060408385031215614da0578182fd5b823591506020830135614a7981615855565b600080600080600080600060e0888a031215614dcc578081fd5b873596506020880135614dde81615855565b95506040880135614dee81615855565b9450606088013593506080880135614e0581615855565b925060a0880135915060c0880135614c668161586a565b60008060008060808587031215614e31578182fd5b843593506020850135614e4381615855565b9250604085013591506060850135614e5a81615855565b939692955090935050565b600080600060608486031215614e79578081fd5b8351925060208401519150604084015190509250925092565b600060208284031215614ea3578081fd5b815167ffffffffffffffff811115614eb9578182fd5b8201601f81018413614ec9578182fd5b8051614ed76149c482615805565b818152856020838501011115614eeb578384fd5b614efc826020830160208601615829565b95945050505050565b600080600060608486031215614f19578081fd5b833592506020840135614f2b81615855565b91506040840135614bdf81615855565b60008060008060808587031215614f50578182fd5b505082516020840151604085015160609095015191969095509092509050565b600060208284031215614f81578081fd5b815160ff811681146126a3578182fd5b6001600160a01b03169052565b6000815180845260208085019450808401835b83811015614fcd57815187529582019590820190600101614fb1565b509495945050505050565b15159052565b60008151808452614ff6816020860160208601615829565b601f01601f19169290920160200192915050565b8051608080845281519084018190526000916020919082019060a0860190845b8181101561504f5783516001600160a01b03168352928401929184019160010161502a565b5050828501519150858103838701526150688183614f9e565b92505050604083015184820360408601526150838282614fde565b91505060608301516150986060860182614fd8565b509392505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600061010060018060a01b03808c1684528a6020850152808a166040850152508760608401528660808401528560a08401528460c08401528060e084015261512281840185614fde565b9b9a5050505050505050505050565b6001600160a01b039687168152948616602086015292851660408501526060840191909152909216608082015260a081019190915260c00190565b6001600160a01b03968716815294861660208601529290941660408401526060830152608082019290925260a081019190915260c00190565b6001600160a01b0396871681529486166020860152604085019390935293166060830152608082019290925260a081019190915260c00190565b6001600160a01b03929092168252602082015260400190565b602080825282518282018190526000919060409081850190868401855b8281101561526b57815180516001600160a01b031685528681015161523c88870182614f91565b508086015185870152606080820151908601526080908101519085015260a09093019290850190600101615215565b5091979650505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561530c57603f19898403018552815160a06152bc858351614f91565b888201516152cc8a870182614f91565b508782015181898701526152e282870182614fde565b6060848101519088015260809384015193909601929092525050938601939086019060010161529c565b509098975050505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561530c57603f19898403018552815161010061535f858351614f91565b8882015161536f8a870182614f91565b508188015185890152606080830151908601526080808301519086015260a0808301519086015260c0808301519086015260e0918201519185018190526153b881860183614fde565b96890196945050509086019060010161533e565b90815260200190565b8481526001600160a01b038481166020830152831660408201526080606082018190526000906154079083018461500a565b9695505050505050565b9687526001600160a01b0395861660208801529390941660408601526060850191909152608084015260a0830191909152151560c082015260e00190565b604081016002841061545d57fe5b9281526020015290565b60006004841061547357fe5b83825260406020830152613d5e6040830184614f9e565b6020808252601f908201527f496e636f7272656374207375627363726962657220666f7220726566756e6400604082015260600190565b6020808252601c908201527f496e76616c696420616c6c6f746d656e74207375627363726962657200000000604082015260600190565b60208082526012908201527127b7363c9020b9b9b2ba1036b0b730b3b2b960711b604082015260600190565b60208082526017908201527f4f6e6c79204c697175696469747920636f6e7472616374000000000000000000604082015260600190565b6020808252600d908201526c1058d8d95cdcc81b1bd8dad959609a1b604082015260600190565b6020808252601b908201527f556e617574686f72697a65642066656520636f6c6c656374696f6e0000000000604082015260600190565b6020808252601b908201527f4f6e6c79204465706f736974617279207061727469636970616e740000000000604082015260600190565b60208082526012908201527127b7363c9024b9b9bab29036b0b730b3b2b960711b604082015260600190565b602080825260139082015272556e617574686f72697a65642061636365737360681b604082015260600190565b6020808252601a908201527f496e636f727265637420616c6c6f746d656e7420616d6f756e74000000000000604082015260600190565b602080825260139082015272139bc81cdd589cd8dc9a58995c88199bdd5b99606a1b604082015260600190565b6020808252600c908201526b125b9d985b1a59081c1bdbdb60a21b604082015260600190565b60006020825282516101408060208501526156f2610160850183614fde565b91506020850151601f19808685030160408701526157108483614fde565b9350604087015191506157266060870183614f91565b6060870151915061573a6080870183614f91565b608087015160a087015260a087015160c087015260c087015160e087015260e08701519150610100828188015280880151925050610120828188015280880151925050808685030183870152506154078382614fde565b9283526001600160a01b03918216602084015216604082015260600190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156157dd57600080fd5b604052919050565b600067ffffffffffffffff8211156157fb578081fd5b5060209081020190565b600067ffffffffffffffff82111561581b578081fd5b50601f01601f191660200190565b60005b8381101561584457818101518382015260200161582c565b8381111561155b5750506000910152565b6001600160a01b03811681146147ac57600080fd5b80151581146147ac57600080fdfea2646970667358221220b75ade3bba049255fdf1ab806e4b14ea50c5f251f10387b00580280b25aa33b864736f6c63430007010033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ac316f1116100c3578063b329620b1161007c578063b329620b146102b3578063bfa0caa7146102c6578063c74073a1146102e6578063f2fde38b146102f9578063f3ea66ff1461030c578063f7efef101461031f5761014d565b80638ac316f11461023f5780638da5cb5b146102525780639701bbc31461025a578063987757dd1461027a5780639f2a0ccc1461028d578063a7d545db146102a05761014d565b80636c78c894116101155780636c78c894146101c95780636d78f47a146101dc578063715018a6146101ef57806388c4b6ee146101f7578063893d20e8146102175780638a0c62f11461022c5761014d565b80633f0990281461015257806341c8b2681461016757806359d3b2cd1461017a5780635bccd177146101a357806369fe0e2d146101b6575b600080fd5b610165610160366004614d8e565b610332565b005b610165610175366004614bea565b6107cb565b61018d610188366004614a14565b61085d565b60405161019a91906153cc565b60405180910390f35b61018d6101b1366004614a14565b610885565b6101656101c4366004614d5e565b6109b8565b6101656101d7366004614a84565b6109c9565b6101656101ea366004614ba9565b610afd565b610165610bbc565b61020a610205366004614a14565b610c12565b60405161019a91906151f8565b61021f610cc1565b60405161019a91906150a0565b61016561023a366004614e1c565b610cd0565b61016561024d366004614db2565b610dac565b61021f6111e0565b61026d610268366004614a14565b6111ef565b60405161019a919061531a565b610165610288366004614d5e565b6113fe565b61018d61029b366004614a4c565b611561565b6101656102ae366004614f05565b61158e565b6101656102c1366004614a84565b611619565b6102d96102d4366004614d5e565b61174f565b60405161019a9190615278565b6101656102f4366004614a14565b61194a565b610165610307366004614a14565b611de7565b61016561031a366004614ad4565b611e65565b61026d61032d366004614a4c565b6123b8565b6000828152601760205260408082205460048054925163e0a87de160e01b815233946001600160a01b03938416949093169163e0a87de191610376918691016150a0565b60206040518083038186803b15801561038e57600080fd5b505afa1580156103a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c69190614a30565b9050826001600160a01b0316816001600160a01b0316146104025760405162461bcd60e51b81526004016103f9906155f0565b60405180910390fd5b60008581526014602090815260408083206001600160a01b0388168452909152902054806104425760405162461bcd60e51b81526004016103f990615680565b60008681526013602052604090208054600019909201916001600160a01b03871691908390811061046f57fe5b60009182526020909120600590910201546001600160a01b0316146104a65760405162461bcd60e51b81526004016103f99061548a565b6000868152601760209081526040808320546013909252822080546001600160a01b039092169291849081106104d857fe5b60009182526020808320600160059093020191909101548a83526015825260408084206001600160a01b03909216808552918352808420548c855260139093529092208054929350610545928690811061052e57fe5b9060005260206000209060050201600301546125d4565b60008981526015602090815260408083206001600160a01b03861684528252808320939093558a82526013905220805489917fbd39de70db9f51c606065fcb0157b3d97984d1ec579fa55b555e78eb8460af7e918a918691889081106105a757fe5b90600052602060002090600502016004015485601360008f815260200190815260200160002089815481106105d857fe5b906000526020600020906005020160030154426040516105fd969594939291906151a5565b60405180910390a260008881526014602090815260408083206001600160a01b03808c168552908352818420849055858116808552600b8452828520918616855292528220805491926323b872dd928b92919061065657fe5b600091825260208083206008909202909101548d83526013909152604090912080546001600160a01b03909216918890811061068e57fe5b9060005260206000209060050201600401546040518463ffffffff1660e01b81526004016106be939291906150b4565b602060405180830381600087803b1580156106d857600080fd5b505af11580156106ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107109190614d42565b50806001600160a01b031663a9059cbb88601360008c8152602001908152602001600020868154811061073f57fe5b9060005260206000209060050201600301546040518363ffffffff1660e01b815260040161076e9291906151df565b602060405180830381600087803b15801561078857600080fd5b505af115801561079c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c09190614d42565b505050505050505050565b6107e9336107d76111e0565b6001600160a01b0316146101aa6125ea565b600180546001600160a01b03199081166001600160a01b03998a16179091556002805482169689169690961790955560048054861694881694909417909355600580548516918716919091179055600393909355600680548316938516939093179092556007805490911691909216179055565b3360009081526018602090815260408083206001600160a01b03949094168352929052205490565b6007546000906001600160a01b031633146108b25760405162461bcd60e51b81526004016103f990615582565b6001600160a01b0382166000908152601960205260409020546108d581806125d4565b6001600160a01b038085166000818152601960205260409081902093909355600754925163a9059cbb60e01b8152909263a9059cbb9261091c9291169085906004016151df565b602060405180830381600087803b15801561093657600080fd5b505af115801561094a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096e9190614d42565b50306001600160a01b03167feaad90c8664cdf61d60bd7ba6745a881fd1c38d9f4ff0b373b4365cdeeb0f9e882426040516109aa9291906157b0565b60405180910390a292915050565b6109c4336107d76111e0565b600355565b6004805460405163e0a87de160e01b8152339286926000926001600160a01b039091169163e0a87de1916109ff918691016150a0565b60206040518083038186803b158015610a1757600080fd5b505afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4f9190614a30565b9050826001600160a01b0316816001600160a01b031614610a825760405162461bcd60e51b81526004016103f9906155f0565b6001600160a01b038087166000908152600b60209081526040808320938916835292905290812080548290610ab357fe5b6000918252602090912060089091020180549091506001600160a01b0389811691161415610af357610aed85610ae8896125fc565b612697565b60068201555b5050505050505050565b600554604051634427673360e01b815233916000916001600160a01b0390911690634427673390610b329085906004016150a0565b60606040518083038186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b829190614e65565b505090508061044560f41b14610baa5760405162461bcd60e51b81526004016103f9906155b9565b610bb58585856126aa565b5050505050565b610bc8336107d76111e0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6001600160a01b0381166000908152600f60209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610cb65760008481526020908190206040805160a0810182526005860290920180546001600160a01b03908116845260018083015490911684860152600282015492840192909252600381015460608401526004015460808301529083529092019101610c4a565b505050509050919050565b6000610ccb6111e0565b905090565b6000848152601760205260408082205460048054925163e0a87de160e01b815233946001600160a01b03938416949093169163e0a87de191610d14918691016150a0565b60206040518083038186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190614a30565b9050826001600160a01b0316816001600160a01b031614610d975760405162461bcd60e51b81526004016103f9906155f0565b610da387878787612d49565b50505050505050565b600087815260166020526040902054879033906001600160a01b03168114610de65760405162461bcd60e51b81526004016103f9906156ad565b60008981526014602090815260408083206001600160a01b038916845290915281205490610e1c88610e178b6125fc565b61327e565b60008c815260176020526040908190205490519192506001600160a01b0316907f03e4d401f7446bde326c5951f40797b975fbe06e73f36b2a41646ea680cc40f290610e75908e908b908e9087908d9042908e90615411565b60405180910390a284156110d75760008b81526015602090815260408083206001600160a01b038d168452909152902054610eb0908261328a565b60008c81526015602090815260408083206001600160a01b038e1684529091529020558161105657610ee0614664565b6040518060a00160405280896001600160a01b031681526020018b6001600160a01b031681526020018b6001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015610f4257600080fd5b505afa158015610f56573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f7e9190810190614e92565b8152602001838152602001610f9689610e178f6125fc565b905260008d815260136020908152604080832080546001818101835591855293839020855160059095020180546001600160a01b039586166001600160a01b0319918216178255848701519282018054939096169216919091179093558301518051939450849361100d92600285019201906146a5565b50606082015160038201556080909101516004909101555060008b815260136020908152604080832054601483528184206001600160a01b038c168552909252909120556110d2565b60008b81526013602052604081208054600019850190811061107457fe5b6000918252602090912060059091020180549091506001600160a01b03898116911614156110d0576110aa81600301548361328a565b600382015560048101546110ca906110c589610e178f6125fc565b61328a565b60048201555b505b6111d3565b81156111d35760008b8152601360205260408120805460001985019081106110fb57fe5b6000918252602090912060059091020180549091506001600160a01b0389811691161415611157576111318160030154836125d4565b600382015560048101546111519061114c89610e178f6125fc565b6125d4565b60048201555b60008c81526015602090815260408083206001600160a01b038e16845290915290205482116111d15760008c81526015602090815260408083206001600160a01b038e1684529091529020546111ad90836125d4565b60008d81526015602090815260408083206001600160a01b038f1684529091529020555b505b5050505050505050505050565b6000546001600160a01b031690565b600554604051634427673360e01b815260609133916000916001600160a01b0316906344276733906112259085906004016150a0565b60606040518083038186803b15801561123d57600080fd5b505afa158015611251573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112759190614e65565b505090508061414d60f01b148061129057508061044560f41b145b6112ac5760405162461bcd60e51b81526004016103f9906154f8565b6001600160a01b0384166000908152600a6020908152604080832080548251818502810185019093528083529193909284015b828210156113f15760008481526020908190206040805161010080820183526008870290930180546001600160a01b03908116835260018083015490911683870152600280830154848601526003830154606085015260048301546080850152600583015460a0850152600683015460c08501526007830180548651938116159097026000190190961604601f81018790048702820187019094528381529194909360e086019390918301828280156113d95780601f106113ae576101008083540402835291602001916113d9565b820191906000526020600020905b8154815290600101906020018083116113bc57829003601f168201915b505050505081525050815260200190600101906112df565b5050505092505050919050565b6000818152601760205260408082205460048054925163e0a87de160e01b815233946001600160a01b03938416949093169163e0a87de191611442918691016150a0565b60206040518083038186803b15801561145a57600080fd5b505afa15801561146e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114929190614a30565b9050826001600160a01b0316816001600160a01b0316146114c55760405162461bcd60e51b81526004016103f9906155f0565b600760009054906101000a90046001600160a01b03166001600160a01b0316637d8e98316040518163ffffffff1660e01b815260040160806040518083038186803b15801561151357600080fd5b505afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190614f3b565b50601b555061155b90508461329c565b50505050565b6001600160a01b038083166000908152601a60209081526040808320938516835292905220545b92915050565b60065433906001600160a01b031681146115ba5760405162461bcd60e51b81526004016103f990615524565b6001600160a01b038083166000908152601860209081526040808320938716835292905220546115ea908561328a565b6001600160a01b0392831660009081526018602090815260408083209690951682529490945291909220555050565b600554604051634427673360e01b815233916000916001600160a01b039091169063442767339061164e9085906004016150a0565b60606040518083038186803b15801561166657600080fd5b505afa15801561167a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169e9190614e65565b505090508061044560f41b146116c65760405162461bcd60e51b81526004016103f9906155b9565b6001600160a01b038086166000908152600b602090815260408083209388168352929052908120805482906116f757fe5b6000918252602090912060089091020180549091506001600160a01b0388811691161415610da3575050506001600160a01b039283166000908152601a60209081526040808320949095168252929092529190205550565b6000818152601760205260408082205460048054925163e0a87de160e01b815260609433946001600160a01b0394851694919391169163e0a87de191611797918691016150a0565b60206040518083038186803b1580156117af57600080fd5b505afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190614a30565b9050826001600160a01b0316816001600160a01b03161461181a5760405162461bcd60e51b81526004016103f9906155f0565b600085815260136020908152604080832080548251818502810185019093528083529193909284015b8282101561193c5760008481526020908190206040805160a0810182526005860290920180546001600160a01b039081168452600180830154909116848601526002808301805485516101009482161594909402600019011691909104601f81018790048702830187018552808352949592949386019391929091908301828280156119105780601f106118e557610100808354040283529160200191611910565b820191906000526020600020905b8154815290600101906020018083116118f357829003601f168201915b505050505081526020016003820154815260200160048201548152505081526020019060010190611843565b505050509350505050919050565b6004805460405163e0a87de160e01b8152339284926000926001600160a01b039091169163e0a87de191611980918691016150a0565b60206040518083038186803b15801561199857600080fd5b505afa1580156119ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d09190614a30565b9050826001600160a01b0316816001600160a01b031614611a035760405162461bcd60e51b81526004016103f9906155f0565b6001600160a01b0384166000908152601260205260408120600101548190815b81811015610af3576001600160a01b0388166000908152601260205260409020600101805482908110611a5257fe5b600091825260208083209091015480835260168252604092839020548351636945c1fd60e01b815293519196506001600160a01b031692636945c1fd926004808301939192829003018186803b158015611aab57600080fd5b505afa158015611abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae39190614a30565b600254604051631f29a8cd60e31b81529195506060916001600160a01b039091169063f94d466890611b199087906004016153cc565b60006040518083038186803b158015611b3157600080fd5b505afa158015611b45573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b6d9190810190614c76565b505090506060611b7c82613963565b90506060825167ffffffffffffffff81118015611b9857600080fd5b50604051908082528060200260200182016040528015611bc2578160200160208202803683370190505b509050611bcd614723565b60405180608001604052808481526020018381526020016001620f42406dffffffffffffffffffffffffffff03604051602001611c0b92919061544f565b60408051808303601f1901815291815290825260006020909201919091526002549051638bdb391360e01b81529192506001600160a01b031690638bdb391390611c5f908a903090819087906004016153d5565b600060405180830381600087803b158015611c7957600080fd5b505af1158015611c8d573d6000803e3d6000fd5b50505050867f56eadf552f1d54f8f73fbbf801097c1c4d7bb3d77d5ac2bebfd0a8151642d55a8d42604051611cc39291906151df565b60405180910390a26001600160a01b03808d16600081815260126020526040908190206002015490516370a0823160e01b8152919263a9059cbb9291169083906370a0823190611d179030906004016150a0565b60206040518083038186803b158015611d2f57600080fd5b505afa158015611d43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d679190614d76565b6040518363ffffffff1660e01b8152600401611d849291906151df565b602060405180830381600087803b158015611d9e57600080fd5b505af1158015611db2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd69190614d42565b505060019093019250611a23915050565b611df3336107d76111e0565b611e0a6001600160a01b03821615156101ab6125ea565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600754600160a01b900460ff1615611e8f5760405162461bcd60e51b81526004016103f99061555b565b6007805460ff60a01b1916600160a01b179055600554604051634427673360e01b81526000916001600160a01b031690634427673390611ed39033906004016150a0565b60606040518083038186803b158015611eeb57600080fd5b505afa158015611eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f239190614e65565b505060048054604051633ea6c82d60e01b81529293506001600160a01b031691633ea6c82d91611f55918d91016150a0565b60206040518083038186803b158015611f6d57600080fd5b505afa158015611f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa59190614d42565b151560011480611fb957508061414d60f01b145b611fd55760405162461bcd60e51b81526004016103f99061561c565b8061414d60f01b141561228a573360009081526018602090815260408083206001600160a01b038d168085529252918290205491516370a0823160e01b81526370a08231906120289030906004016150a0565b60206040518083038186803b15801561204057600080fd5b505afa158015612054573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120789190614d76565b101580156120a957503360009081526018602090815260408083206001600160a01b038d1684529091529020548711155b15612118573360009081526018602090815260408083206001600160a01b038d1684529091529020546120dc9088613966565b3360008181526018602090815260408083206001600160a01b038f168452909152902091909155612113908a8a8a8a8a8a89613974565b61222e565b6040516370a0823160e01b815287906001600160a01b038b16906370a08231906121469033906004016150a0565b60206040518083038186803b15801561215e57600080fd5b505afa158015612172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121969190614d76565b1061222e576040516323b872dd60e01b81526001600160a01b038a16906323b872dd906121cb90339030908c906004016150b4565b602060405180830381600087803b1580156121e557600080fd5b505af11580156121f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061221d9190614d42565b5061222e338a8a8a8a8a8a89613974565b886001600160a01b03167f647111dfd26aa614f3a039ffe52dcfcd383ba2900b9ed21cde54b318f92707a733898989898e670de0b6b3a76400008a60405161227d9897969594939291906150d8565b60405180910390a26123a0565b6040516370a0823160e01b815287906001600160a01b038b16906370a08231906122b89087906004016150a0565b60206040518083038186803b1580156122d057600080fd5b505afa1580156122e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123089190614d76565b106123a0576040516323b872dd60e01b81526001600160a01b038a16906323b872dd9061233d90869030908c906004016150b4565b602060405180830381600087803b15801561235757600080fd5b505af115801561236b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238f9190614d42565b506123a0838a8a8a8a8a8a89613974565b50506007805460ff60a01b1916905550505050505050565b600554604051634427673360e01b815260609133916000916001600160a01b0316906344276733906123ee9085906004016150a0565b60606040518083038186803b15801561240657600080fd5b505afa15801561241a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243e9190614e65565b505090508061414d60f01b148061245957508061044560f41b145b6124755760405162461bcd60e51b81526004016103f9906154f8565b6001600160a01b038086166000908152600b60209081526040808320938816835292815282822080548451818402810184019095528085529092909184015b828210156125c65760008481526020908190206040805161010080820183526008870290930180546001600160a01b03908116835260018083015490911683870152600280830154848601526003830154606085015260048301546080850152600583015460a0850152600683015460c08501526007830180548651938116159097026000190190961604601f81018790048702820187019094528381529194909360e086019390918301828280156125ae5780601f10612583576101008083540402835291602001916125ae565b820191906000526020600020905b81548152906001019060200180831161259157829003601f168201915b505050505081525050815260200190600101906124b4565b505050509250505092915050565b60006125e48383111560016125ea565b50900390565b816125f8576125f881613cb5565b5050565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561263857600080fd5b505afa15801561264c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126709190614f70565b60ff16905060006126826012836125d4565b600a0a670de0b6b3a764000002949350505050565b60006126a38383613d08565b9392505050565b600080600080600080886001600160a01b031660086001600960008d6001600160a01b03166001600160a01b031681526020019081526020016000205403815481106126f257fe5b6000918252602090912001546001600160a01b031614156107c05760005b600854811015612cff57896001600160a01b03166008828154811061273157fe5b6000918252602090912001546001600160a01b031614612cf7576008818154811061275857fe5b60009182526020808320909101546001600160a01b03908116808452600b83526040808520928f16855291909252822054975095505b86811015612cf5576001600160a01b03808c166000908152600b60209081526040808320938a16835292905290812080549091906127c857fe5b60009182526020808320600260089093020191909101546001600160a01b03808f168452600b83526040808520918b16855292529082208054919750919061280c57fe5b9060005260206000209060080201600401549350600b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008c6001600160a01b03166001600160a01b03168152602001908152602001600020818154811061287357fe5b9060005260206000209060080201600201549250600b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008c6001600160a01b03166001600160a01b0316815260200190815260200160002081815481106128da57fe5b60009182526020909120600890910201546001600160a01b031697508215612ced576001600160a01b038087166000908152600b60209081526040808320938f16835292905220805461294c9185918490811061293357fe5b9060005260206000209060080201600301546001613d3e565b61295885876001613d3e565b11612c96576001600160a01b03808c166000908152600d60209081526040808320938a16835292905220546129db576001600160a01b038b81166000818152600c6020908152604080832080546001810182558185528385200180546001600160a01b031916968d1696871790559383529254600d825283832094835293905220555b6001600160a01b03808c166000908152600e60209081526040808320938a1683529290522054612a0d85876001613d3e565b1080612a3c57506001600160a01b03808c166000908152600e60209081526040808320938a1683529290522054155b15612a8a57612a63612a5185610ae8896125fc565b612a5e87610ae88f6125fc565b613d66565b6001600160a01b03808d166000908152600e60209081526040808320938b16835292905220555b6001600160a01b038b81166000908152600e60209081526040808320938a168352929052206002810186905560030154612ac4908461328a565b6001600160a01b03808d166000908152600e60209081526040808320938b1683529290522060030155612af561474d565b6040518060a001604052808a6001600160a01b03168152602001886001600160a01b031681526020018581526020016000815260200160008152509050600f60008d6001600160a01b03166001600160a01b0316815260200190815260200160002081908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015550508b6001600160a01b03167f9426088b1d278a7af8f917da4fae1aa63b954ba475dd3b6ba9c6539508c29d7c308b8a8886606001518760800151604051612c469695949392919061516c565b60405180910390a26001600160a01b038c16600090815260106020526040902054612c71908561328a565b6001600160a01b038d166000908152601060205260408120919091559350612ced9050565b6001600160a01b038089166000908152601860209081526040808320938a1683529290522054612cc6908461328a565b6001600160a01b03808a166000908152601860209081526040808320938b16835292905220555b60010161278e565b505b600101612710565b506001600160a01b0389166000908152600c6020526040902054156107c057612d288989613db7565b6001600160a01b0389166000908152600c602052604081206107c09161478e565b60008481526014602090815260408083206001600160a01b038716845290915290205480612d895760405162461bcd60e51b81526004016103f990615680565b60008581526013602052604090208054600019909201916001600160a01b038616919083908110612db657fe5b60009182526020909120600590910201546001600160a01b031614612ded5760405162461bcd60e51b81526004016103f9906154c1565b6000858152601360205260409020805484919083908110612e0a57fe5b9060005260206000209060050201600301541015612e3a5760405162461bcd60e51b81526004016103f990615649565b6000858152601660209081526040808320548151632541897f60e01b8152915184938493849384936001600160a01b0390911692632541897f9260048082019391829003018186803b158015612e8f57600080fd5b505afa158015612ea3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec79190614a30565b9050612f0288601360008d81526020019081526020016000208881548110612eeb57fe5b906000526020600020906005020160030154613d66565b60008b81526013602052604090208054919650612f3b9188908110612f2357fe5b906000526020600020906005020160030154896125d4565b60008b8152601360205260409020805488908110612f5557fe5b906000526020600020906005020160030181905550601360008b81526020019081526020016000208681548110612f8857fe5b9060005260206000209060050201600301549150613008601360008c81526020019081526020016000208781548110612fbd57fe5b90600052602060002090600502016004015461114c601360008e81526020019081526020016000208981548110612ff057fe5b90600052602060002090600502016004015488613d08565b925061302f846110c5601360008e81526020019081526020016000208981548110612ff057fe5b60008b81526015602090815260408083206001600160a01b038c16845290915290205490945061305f90836125d4565b60008b81526015602090815260408083206001600160a01b038c1684529091529081902091909155518a907fbd39de70db9f51c606065fcb0157b3d97984d1ec579fa55b555e78eb8460af7e906130c1908c90859088908d90899042906151a5565b60405180910390a260008a81526014602090815260408083206001600160a01b038d16845290915280822091909155518a907f4bbb221ed2740b5d1fde83b4f627802ff5462a27e60c2edff0b88fdb1ea9b2849061312a908c90859089908d908f9042906151a5565b60405180910390a26001600160a01b038082166000818152600b60209081526040808320948c168352939052918220805491926323b872dd928d92919061316d57fe5b60009182526020909120600890910201546040516001600160e01b031960e085901b1681526131ab92916001600160a01b03169088906004016150b4565b602060405180830381600087803b1580156131c557600080fd5b505af11580156131d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131fd9190614d42565b5060405163a9059cbb60e01b81526001600160a01b0388169063a9059cbb9061322c908c9086906004016151df565b602060405180830381600087803b15801561324657600080fd5b505af115801561325a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d39190614d42565b60006126a38383613d66565b60008282016126a384821015836125ea565b6000818152601660209081526040808320548151636945c1fd60e01b815291516001600160a01b0390911692636945c1fd9260048082019391829003018186803b1580156132e957600080fd5b505afa1580156132fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133219190614a30565b6000838152601760209081526040808320546001600160a01b039081168452600b83528184209085168452909152812080549293509091829061336057fe5b600091825260208083206008909202909101548583526015825260408084206001600160a01b0387811686529352832054911692506133a290610ae8856125fc565b6000858152601760209081526040808320546001600160a01b039081168452601a83528184209088168452909152812054919250901561341d576000858152601760209081526040808320546001600160a01b039081168452601a83528184209088168452909152902054613418908390613d08565b613429565b61342982600354613d08565b905060008060005b6000888152601760209081526040808320546001600160a01b03168352600f90915290205481101561384e576000888152601760209081526040808320546001600160a01b03168352600f909152902080546134ce91908390811061349257fe5b60009182526020808320600260059093020191909101548b8352601782526040808420546001600160a01b031684526010909252912054613d66565b92506134e66134dd8585613d08565b612a5e896125fc565b60065460008a8152601760209081526040808320546001600160a01b039081168452600f909252909120805493955091169163451353f19185918590811061352a57fe5b60009182526020808320600160059093020191909101548d8352601782526040808420546001600160a01b039081168552600f90935290922080549190921691908690811061357557fe5b60009182526020909120600590910201546040516001600160e01b031960e086901b1681526135b29392916001600160a01b031690600401615791565b600060405180830381600087803b1580156135cc57600080fd5b505af11580156135e0573d6000803e3d6000fd5b5050506000898152601760209081526040808320546001600160a01b039081168452600f9092529091208054918a16925063a9059cbb918490811061362157fe5b6000918252602090912060059091020154601b546001600160a01b039091169061364c908690613d08565b6040518363ffffffff1660e01b81526004016136699291906151df565b602060405180830381600087803b15801561368357600080fd5b505af1158015613697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136bb9190614d42565b506000888152601760209081526040808320546001600160a01b03168352600f909152902080546137099190839081106136f157fe5b9060005260206000209060050201600401548361328a565b6000898152601760209081526040808320546001600160a01b03168352600f909152902080548390811061373957fe5b9060005260206000209060050201600401819055506137646134dd8461375f88886125d4565b613d08565b6000898152601760209081526040808320546001600160a01b03168352600f909152902080549194506137b3918390811061379b57fe5b9060005260206000209060050201600301548461328a565b506000888152601760209081526040808320546001600160a01b0316808452600f90925290912080548a927f5c520d8718b066e97bb13ab129eea39c9edcbf16de59770e2e191bc2421070b89290918b91908690811061380f57fe5b600091825260209091206005909102015460405161383e9392916001600160a01b03169088908d908b90615131565b60405180910390a2600101613431565b5061385c83612a5e886125fc565b925061389760196000886001600160a01b03166001600160a01b03168152602001908152602001600020546110c58561114c87601b54613d08565b6001600160a01b0387166000818152601960209081526040808320949094558a8252601581528382208383529052919091205463a9059cbb9087906138dc90876125d4565b6040518363ffffffff1660e01b81526004016138f99291906151df565b602060405180830381600087803b15801561391357600080fd5b505af1158015613927573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394b9190614d42565b506000878152601360205260408120610da3916147af565b90565b60006126a3838360016142b5565b61397c6147d0565b6040518061010001604052808a6001600160a01b03168152602001896001600160a01b03168152602001878152602001858152602001848152602001888152602001670de0b6b3a764000081526020018381525090506000600b60008a6001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b03168152602001908152602001600020805490509050600b60008a6001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b0316815260200190815260200160002082908060018154018082558091505060019003906000526020600020906008020160009091909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007019080519060200190613b3c9291906146a5565b5050506001600160a01b038916600090815260096020526040902054613bb757600880546001810182557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b038c169081179091559054600091825260096020526040909120555b6001600160a01b038087166000818152600a60209081526040808320948e168352600b825280832093835292905220805483908110613bf257fe5b6000918252602080832084546001818101875595855291909320600892830290930180549190920290920180546001600160a01b03199081166001600160a01b039485161782558483015482860180549092169416939093179092556002808201548184015560038083015490840155600480830154908401556005808301549084015560068083015490840155600780830180549395613ca694928601939192908116156101000260001901160461482a565b50505050505050505050505050565b62461bcd60e51b6000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b6000828202613d2c841580613d25575083858381613d2257fe5b04145b60036125ea565b670de0b6b3a764000090049392505050565b600081613d5457613d4f84846142cb565b613d5e565b613d5e84846142eb565b949350505050565b6000613d7582151560046125ea565b82613d8257506000611588565b670de0b6b3a764000083810290613da590858381613d9c57fe5b041460056125ea565b828181613dae57fe5b04915050611588565b6001600160a01b0382166000908152600c6020526040812054905b8181101561155b576001600160a01b0384166000908152600c60205260408120805483908110613dfe57fe5b6000918252602080832091909101546001600160a01b038881168452600e83526040808520919092168085529252909120600281015460039091015491925090613e4661489f565b604080516101808101825260136101408201908152722b32b934b334b2b2102837b7b6102a37b5b2b760691b610160830152815281518083018352600381526215941560ea1b602082810191909152808301919091526001600160a01b03808c16838501819052908816606084018190526000828152600e84528581208282528452858120546080860152918252600b83528482209082529091529182208054919260a0840192613ef357fe5b90600052602060002090600802016006015481526020018481526020016003548152602001888152602001600b60008b6001600160a01b03166001600160a01b031681526020019081526020016000206000876001600160a01b03166001600160a01b03168152602001908152602001600020600081548110613f7257fe5b6000918252602091829020600760089092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156140085780601f10613fdd57610100808354040283529160200191614008565b820191906000526020600020905b815481529060010190602001808311613feb57829003601f168201915b5050509190925250506002546040516372e0f85360e01b81529192506001600160a01b03808b16926372e0f8539261404692169087906004016151df565b600060405180830381600087803b15801561406057600080fd5b505af1158015614074573d6000803e3d6000fd5b505060015460405163088db13360e21b8152600093506001600160a01b039091169150632236c4cc906140ab9085906004016156d3565b602060405180830381600087803b1580156140c557600080fd5b505af11580156140d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140fd9190614a30565b6001600160a01b03808b166000908152600b60209081526040808320938a16835292905290812080549293509161413057fe5b600091825260208083206008909202909101546001600160a01b038c811684526012835260408085206002810180546001600160a01b03191694841694909417909355918c9055815163038fff2d60e41b81529151908516926338fff2d09260048082019391829003018186803b1580156141aa57600080fd5b505afa1580156141be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141e29190614d76565b6001600160a01b03808c1660008181526012602090815260408083206001908101805491820181558452828420018690558583526016825280832080549589166001600160a01b0319968716179055601790915290208054909216179055905061424f818b88888861431e565b5050506001600160a01b038088166000818152600e60209081526040808320979094168083529681528382208281556001808201849055600282018490556003909101839055928252600d81528382209682529590955290842093909355505001613dd2565b60006142c484841115836125ea565b5050900390565b60006142da82151560046125ea565b8183816142e357fe5b049392505050565b60006142fa82151560046125ea565b8261430757506000611588565b81600184038161431357fe5b046001019050611588565b600254604051631f29a8cd60e31b81526060916001600160a01b03169063f94d46689061434f9089906004016153cc565b60006040518083038186803b15801561436757600080fd5b505afa15801561437b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526143a39190810190614c76565b5050905060606143b282613963565b90506060825167ffffffffffffffff811180156143ce57600080fd5b506040519080825280602002602001820160405280156143f8578160200160208202803683370190505b5060025460405163095ea7b360e01b81529192506001600160a01b038089169263095ea7b39261442e92169088906004016151df565b602060405180830381600087803b15801561444857600080fd5b505af115801561445c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144809190614d42565b5060025460405163095ea7b360e01b81526001600160a01b038981169263095ea7b3926144b5929091169089906004016151df565b602060405180830381600087803b1580156144cf57600080fd5b505af11580156144e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145079190614d42565b5060005b83518110156145ae57876001600160a01b031684828151811061452a57fe5b60200260200101516001600160a01b0316141561455f578582828151811061454e57fe5b6020026020010181815250506145a6565b866001600160a01b031684828151811061457557fe5b60200260200101516001600160a01b031614156145a6578482828151811061459957fe5b6020026020010181815250505b60010161450b565b506145b7614723565b60405180608001604052808481526020018381526020016000846040516020016145e2929190615467565b60408051808303601f190181529181529082526000602090920191909152600254905163172b958560e31b81529192506001600160a01b03169063b95cac2890614636908c903090819087906004016153d5565b600060405180830381600087803b15801561465057600080fd5b505af1158015613ca6573d6000803e3d6000fd5b6040518060a0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106146e657805160ff1916838001178555614713565b82800160010185558215614713579182015b828111156147135782518255916020019190600101906146f8565b5061471f929150614904565b5090565b60405180608001604052806060815260200160608152602001606081526020016000151581525090565b6040518060a0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081525090565b50805460008255906000526020600020908101906147ac9190614904565b50565b50805460008255600502906000526020600020908101906147ac9190614919565b60405180610100016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000801916815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106148635780548555614713565b8280016001018555821561471357600052602060002091601f016020900482015b82811115614713578254825591600101919060010190614884565b604051806101400160405280606081526020016060815260200160006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b5b8082111561471f5760008155600101614905565b8082111561471f5780546001600160a01b031990811682556001820180549091169055600061494b6002830182614962565b506000600382018190556004820155600501614919565b50805460018160011615610100020316600290046000825580601f1061498857506147ac565b601f0160209004906000526020600020908101906147ac9190614904565b600082601f8301126149b6578081fd5b81516149c96149c4826157e5565b6157be565b8181529150602080830190848101818402860182018710156149ea57600080fd5b60005b84811015614a09578151845292820192908201906001016149ed565b505050505092915050565b600060208284031215614a25578081fd5b81356126a381615855565b600060208284031215614a41578081fd5b81516126a381615855565b60008060408385031215614a5e578081fd5b8235614a6981615855565b91506020830135614a7981615855565b809150509250929050565b60008060008060808587031215614a99578182fd5b8435614aa481615855565b93506020850135614ab481615855565b92506040850135614ac481615855565b9396929550929360600135925050565b600080600080600080600080610100898b031215614af0578384fd5b8835614afb81615855565b975060208901359650604089013595506060890135614b1981615855565b94506080890135935060a0890135925060c0890135614b3781615855565b915060e089013567ffffffffffffffff811115614b52578182fd5b8901601f81018b13614b62578182fd5b8035614b706149c482615805565b8181528c6020838501011115614b84578384fd5b8160208401602083013783602083830101528093505050509295985092959890939650565b600080600060608486031215614bbd578283fd5b8335614bc881615855565b9250602084013591506040840135614bdf81615855565b809150509250925092565b600080600080600080600060e0888a031215614c04578283fd5b8735614c0f81615855565b9650602088013595506040880135614c2681615855565b94506060880135614c3681615855565b93506080880135614c4681615855565b925060a0880135614c5681615855565b915060c0880135614c6681615855565b8091505092959891949750929550565b600080600060608486031215614c8a578081fd5b835167ffffffffffffffff80821115614ca1578283fd5b818601915086601f830112614cb4578283fd5b8151614cc26149c4826157e5565b80828252602080830192508086018b828387028901011115614ce2578788fd5b8796505b84871015614d0d578051614cf981615855565b845260019690960195928101928101614ce6565b508901519097509350505080821115614d24578283fd5b50614d31868287016149a6565b925050604084015190509250925092565b600060208284031215614d53578081fd5b81516126a38161586a565b600060208284031215614d6f578081fd5b5035919050565b600060208284031215614d87578081fd5b5051919050565b60008060408385031215614da0578182fd5b823591506020830135614a7981615855565b600080600080600080600060e0888a031215614dcc578081fd5b873596506020880135614dde81615855565b95506040880135614dee81615855565b9450606088013593506080880135614e0581615855565b925060a0880135915060c0880135614c668161586a565b60008060008060808587031215614e31578182fd5b843593506020850135614e4381615855565b9250604085013591506060850135614e5a81615855565b939692955090935050565b600080600060608486031215614e79578081fd5b8351925060208401519150604084015190509250925092565b600060208284031215614ea3578081fd5b815167ffffffffffffffff811115614eb9578182fd5b8201601f81018413614ec9578182fd5b8051614ed76149c482615805565b818152856020838501011115614eeb578384fd5b614efc826020830160208601615829565b95945050505050565b600080600060608486031215614f19578081fd5b833592506020840135614f2b81615855565b91506040840135614bdf81615855565b60008060008060808587031215614f50578182fd5b505082516020840151604085015160609095015191969095509092509050565b600060208284031215614f81578081fd5b815160ff811681146126a3578182fd5b6001600160a01b03169052565b6000815180845260208085019450808401835b83811015614fcd57815187529582019590820190600101614fb1565b509495945050505050565b15159052565b60008151808452614ff6816020860160208601615829565b601f01601f19169290920160200192915050565b8051608080845281519084018190526000916020919082019060a0860190845b8181101561504f5783516001600160a01b03168352928401929184019160010161502a565b5050828501519150858103838701526150688183614f9e565b92505050604083015184820360408601526150838282614fde565b91505060608301516150986060860182614fd8565b509392505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600061010060018060a01b03808c1684528a6020850152808a166040850152508760608401528660808401528560a08401528460c08401528060e084015261512281840185614fde565b9b9a5050505050505050505050565b6001600160a01b039687168152948616602086015292851660408501526060840191909152909216608082015260a081019190915260c00190565b6001600160a01b03968716815294861660208601529290941660408401526060830152608082019290925260a081019190915260c00190565b6001600160a01b0396871681529486166020860152604085019390935293166060830152608082019290925260a081019190915260c00190565b6001600160a01b03929092168252602082015260400190565b602080825282518282018190526000919060409081850190868401855b8281101561526b57815180516001600160a01b031685528681015161523c88870182614f91565b508086015185870152606080820151908601526080908101519085015260a09093019290850190600101615215565b5091979650505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561530c57603f19898403018552815160a06152bc858351614f91565b888201516152cc8a870182614f91565b508782015181898701526152e282870182614fde565b6060848101519088015260809384015193909601929092525050938601939086019060010161529c565b509098975050505050505050565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561530c57603f19898403018552815161010061535f858351614f91565b8882015161536f8a870182614f91565b508188015185890152606080830151908601526080808301519086015260a0808301519086015260c0808301519086015260e0918201519185018190526153b881860183614fde565b96890196945050509086019060010161533e565b90815260200190565b8481526001600160a01b038481166020830152831660408201526080606082018190526000906154079083018461500a565b9695505050505050565b9687526001600160a01b0395861660208801529390941660408601526060850191909152608084015260a0830191909152151560c082015260e00190565b604081016002841061545d57fe5b9281526020015290565b60006004841061547357fe5b83825260406020830152613d5e6040830184614f9e565b6020808252601f908201527f496e636f7272656374207375627363726962657220666f7220726566756e6400604082015260600190565b6020808252601c908201527f496e76616c696420616c6c6f746d656e74207375627363726962657200000000604082015260600190565b60208082526012908201527127b7363c9020b9b9b2ba1036b0b730b3b2b960711b604082015260600190565b60208082526017908201527f4f6e6c79204c697175696469747920636f6e7472616374000000000000000000604082015260600190565b6020808252600d908201526c1058d8d95cdcc81b1bd8dad959609a1b604082015260600190565b6020808252601b908201527f556e617574686f72697a65642066656520636f6c6c656374696f6e0000000000604082015260600190565b6020808252601b908201527f4f6e6c79204465706f736974617279207061727469636970616e740000000000604082015260600190565b60208082526012908201527127b7363c9024b9b9bab29036b0b730b3b2b960711b604082015260600190565b602080825260139082015272556e617574686f72697a65642061636365737360681b604082015260600190565b6020808252601a908201527f496e636f727265637420616c6c6f746d656e7420616d6f756e74000000000000604082015260600190565b602080825260139082015272139bc81cdd589cd8dc9a58995c88199bdd5b99606a1b604082015260600190565b6020808252600c908201526b125b9d985b1a59081c1bdbdb60a21b604082015260600190565b60006020825282516101408060208501526156f2610160850183614fde565b91506020850151601f19808685030160408701526157108483614fde565b9350604087015191506157266060870183614f91565b6060870151915061573a6080870183614f91565b608087015160a087015260a087015160c087015260c087015160e087015260e08701519150610100828188015280880151925050610120828188015280880151925050808685030183870152506154078382614fde565b9283526001600160a01b03918216602084015216604082015260600190565b918252602082015260400190565b60405181810167ffffffffffffffff811182821017156157dd57600080fd5b604052919050565b600067ffffffffffffffff8211156157fb578081fd5b5060209081020190565b600067ffffffffffffffff82111561581b578081fd5b50601f01601f191660200190565b60005b8381101561584457818101518382015260200161582c565b8381111561155b5750506000910152565b6001600160a01b03811681146147ac57600080fd5b80151581146147ac57600080fdfea2646970667358221220b75ade3bba049255fdf1ab806e4b14ea50c5f251f10387b00580280b25aa33b864736f6c63430007010033",
    "immutableReferences": {},
    "sourceMap": "1036:34966:18:-:0;;;1284:1;1250:35;;1036:34966;;;;;;;;;-1:-1:-1;993:6:9;:19;;-1:-1:-1;;;;;;993:19:9;1002:10;993:19;;;;;1027:44;;1002:10;;993:6;1027:44;;993:6;;1027:44;1036:34966:18;;;;;;",
    "deployedSourceMap": "1036:34966:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29356:1071;;;;;;:::i;:::-;;:::i;:::-;;7074:469;;;;;;:::i;:::-;;:::i;13120:141::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;33366:448;;;;;;:::i;:::-;;:::i;7551:90::-;;;;;;:::i;:::-;;:::i;10594:359::-;;;;;;:::i;:::-;;:::i;13535:162::-;;;;;;:::i;:::-;;:::i;1777:145:9:-;;;:::i;12229:156:18:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;33822:92::-;;;:::i;:::-;;;;;;;:::i;27116:206::-;;;;;;:::i;:::-;;:::i;22629:2164::-;;;;;;:::i;:::-;;:::i;1154:85:9:-;;;:::i;11534:173:18:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;30656:211::-;;;;;;:::i;:::-;;:::i;11257:153::-;;;;;;:::i;:::-;;:::i;12718:214::-;;;;;;:::i;:::-;;:::i;10961:288::-;;;;;;:::i;:::-;;:::i;24986:201::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25345:1254::-;;;;;;:::i;:::-;;:::i;2071:225:9:-;;;;;;:::i;:::-;;:::i;8351:1377:18:-;;;;;;:::i;:::-;;:::i;11878:196::-;;;;;;:::i;:::-;;:::i;29356:1071::-;29453:20;;;;:12;:20;;;;;;;2696:8;;;:24;;-1:-1:-1;;;2696:24:18;;29441:10;;-1:-1:-1;;;;;29453:20:18;;;;;;2696:8;;:14;;:24;;29453:20;;2696:24;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2683:37;;2743:6;-1:-1:-1;;;;;2739:10:18;:2;-1:-1:-1;;;;;2739:10:18;;2731:41;;;;-1:-1:-1;;;2731:41:18;;;;;;;:::i;:::-;;;;;;;;;29486:9:::1;29498:23:::0;;;:15:::1;:23;::::0;;;;;;;-1:-1:-1;;;;;29498:33:18;::::1;::::0;;;;;;;;29550:3;29542:35:::1;;;;-1:-1:-1::0;;;29542:35:18::1;;;;;;;:::i;:::-;29614:17;::::0;;;:9:::1;:17;::::0;;;;:20;;-1:-1:-1;;29592:3:18;;;;-1:-1:-1;;;;;29614:39:18;::::1;::::0;:17;29592:3;;29614:20;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;:29:::0;-1:-1:-1;;;;;29614:29:18::1;:39;29606:83;;;;-1:-1:-1::0;;;29606:83:18::1;;;;;;;:::i;:::-;29710:22;29735:20:::0;;;:12:::1;:20;::::0;;;;;;;;29795:9:::1;:17:::0;;;;;:20;;-1:-1:-1;;;;;29735:20:18;;::::1;::::0;29710:22;29813:1;;29795:20;::::1;;;;;;::::0;;;::::1;::::0;;;:26:::1;:20;::::0;;::::1;;:26:::0;;;::::1;::::0;29891:18;;;:10:::1;:18:::0;;;;;;-1:-1:-1;;;;;29795:26:18;;::::1;29891:38:::0;;;;;;;;;;29931:17;;;:9:::1;:17:::0;;;;;;:20;;29795:26;;-1:-1:-1;29882:77:18::1;::::0;29949:1;;29931:20;::::1;;;;;;;;;;;;;;;:27;;;29882:8;:77::i;:::-;29841:18;::::0;;;:10:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;29841:38:18;::::1;::::0;;;;;;;:118;;;;30017:17;;;:9:::1;:17:::0;;;:20;;29852:6;;29975:136:::1;::::0;29991:8;;30001:14;;30035:1;;30017:20;::::1;;;;;;;;;;;;;;;:27;;;30046:18;30066:9;:17;30076:6;30066:17;;;;;;;;;;;30084:1;30066:20;;;;;;;;;;;;;;;;;;:27;;;30095:15;29975:136;;;;;;;;;;;:::i;:::-;;;;;;;;30172:1;30136:23:::0;;;:15:::1;:23;::::0;;;;;;;-1:-1:-1;;;;;30136:33:18;;::::1;::::0;;;;;;;;:37;;;30188:35;;::::1;30234:24:::0;;;:8:::1;:24:::0;;;;;:44;;::::1;::::0;;;;;;:47;;30188:35;;::::1;::::0;30160:8;;30234:44;30172:1;30234:47:::1;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;:53:::0;30289:17;;;:9:::1;:17:::0;;;;;;;:20;;-1:-1:-1;;;;;30234:53:18;;::::1;::::0;30307:1;;30289:20;::::1;;;;;;;;;;;;;;;:27;;;30188:129;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;30335:18;-1:-1:-1::0;;;;;30328:35:18::1;;30364:8;30374:9;:17;30384:6;30374:17;;;;;;;;;;;30392:1;30374:20;;;;;;;;;;;;;;;;;;:27;;;30328:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2783:1;;;29356:1071:::0;;;;;:::o;7074:469::-;1358:59:9;1378:10;1367:7;:5;:7::i;:::-;-1:-1:-1;;;;;1367:21:9;;9498:3:0;1358:8:9;:59::i;:::-;7263:7:18::1;:18:::0;;-1:-1:-1;;;;;;7263:18:18;;::::1;-1:-1:-1::0;;;;;7263:18:18;;::::1;;::::0;;;7292:5:::1;:14:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;7325:8:::1;:30:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;7374:6:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;7417:17:::1;:38:::0;;;;7466:17:::1;:30:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;7507:12:::1;:28:::0;;;;::::1;::::0;;;::::1;;::::0;;7074:469::o;13120:141::-;13234:10;13192:7;13218:27;;;:15;:27;;;;;;;;-1:-1:-1;;;;;13218:35:18;;;;;;;;;;;;13120:141::o;33366:448::-;33479:12;;33440:7;;-1:-1:-1;;;;;33479:12:18;33467:10;:24;33459:64;;;;-1:-1:-1;;;33459:64:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;33557:12:18;;33534:20;33557:12;;;:4;:12;;;;;;33603:36;33557:12;;33603:8;:36::i;:::-;-1:-1:-1;;;;;33588:12:18;;;;;;;:4;:12;;;;;;;:51;;;;33674:12;;33650:51;;-1:-1:-1;;;33650:51:18;;33588:12;;33650:23;;:51;;33674:12;;;33688;;33650:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;33739:4;-1:-1:-1;;;;;33717:59:18;;33746:12;33760:15;33717:59;;;;;;;:::i;:::-;;;;;;;;33794:12;33366:448;-1:-1:-1;;33366:448:18:o;7551:90::-;1358:59:9;1378:10;1367:7;:5;:7::i;1358:59::-;7609:17:18::1;:24:::0;7551:90::o;10594:359::-;2696:8;;;:24;;-1:-1:-1;;;2696:24:18;;10721:10;;10733:5;;2683:10;;-1:-1:-1;;;;;2696:8:18;;;;:14;;:24;;10733:5;;2696:24;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2683:37;;2743:6;-1:-1:-1;;;;;2739:10:18;:2;-1:-1:-1;;;;;2739:10:18;;2731:41;;;;-1:-1:-1;;;2731:41:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;10782:15:18;;::::1;10751:28;10782:15:::0;;;:8:::1;:15;::::0;;;;;;;:24;;::::1;::::0;;;;;;;;:27;;10751:28;;10782:27:::1;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;10823:7:::0;;10782:27;;-1:-1:-1;;;;;;10823:14:18;;::::1;:7:::0;::::1;:14;10820:126;;;10874:60;10883:12;10897:36;10926:5;10897:21;:36::i;:::-;10874:8;:60::i;:::-;10853:18;::::0;::::1;:81:::0;10820:126:::1;2783:1;10594:359:::0;;;;;;;:::o;13535:162::-;2501:6;;:22;;-1:-1:-1;;;2501:22:18;;13629:10;;2481:12;;-1:-1:-1;;;;;2501:6:18;;;;:14;;:22;;13629:10;;2501:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2480:43;;;;2542:4;-1:-1:-1;;;2542:10:18;2534:50;;;;-1:-1:-1;;;2534:50:18;;;;;;;:::i;:::-;13652:37:::1;13660:8;13670:10;13682:6;13652:7;:37::i;:::-;13535:162:::0;;;;;:::o;1777:145:9:-;1358:59;1378:10;1367:7;:5;:7::i;1358:59::-;1883:1:::1;1867:6:::0;;1846:40:::1;::::0;-1:-1:-1;;;;;1867:6:9;;::::1;::::0;1846:40:::1;::::0;1883:1;;1846:40:::1;1913:1;1896:19:::0;;-1:-1:-1;;;;;;1896:19:9::1;::::0;;1777:145::o;12229:156:18:-;-1:-1:-1;;;;;12348:29:18;;;;;;:18;:29;;;;;;;;12341:36;;;;;;;;;;;;;;;;;12310:11;;12341:36;;12348:29;;12341:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12341:36:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12229:156;;;:::o;33822:92::-;33873:7;33899;:5;:7::i;:::-;33892:14;;33822:92;:::o;27116:206::-;27242:20;;;;:12;:20;;;;;;;2696:8;;;:24;;-1:-1:-1;;;2696:24:18;;27230:10;;-1:-1:-1;;;;;27242:20:18;;;;;;2696:8;;:14;;:24;;27242:20;;2696:24;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2683:37;;2743:6;-1:-1:-1;;;;;2739:10:18;:2;-1:-1:-1;;;;;2739:10:18;;2731:41;;;;-1:-1:-1;;;2731:41:18;;;;;;;:::i;:::-;27275:39:::1;27284:6;27292:8;27302:4;27308:5;27275:8;:39::i;:::-;27116:206:::0;;;;;;;:::o;22629:2164::-;2056:13;;;;:5;:13;;;;;;22789:6;;22797:10;;-1:-1:-1;;;;;2056:13:18;2046:23;;2038:48;;;;-1:-1:-1;;;2038:48:18;;;;;;;:::i;:::-;22820:13:::1;22836:23:::0;;;:15:::1;:23;::::0;;;;;;;-1:-1:-1;;;;;22836:33:18;::::1;::::0;;;;;;;;;22897:61:::1;22912:7:::0;22921:36:::1;22950:5:::0;22921:21:::1;:36::i;:::-;22897:14;:61::i;:::-;22986:20;::::0;;;:12:::1;:20;::::0;;;;;;;22974:100;;22880:78;;-1:-1:-1;;;;;;22986:20:18::1;::::0;22974:100:::1;::::0;::::1;::::0;22999:6;;23016:8;;23026:5;;22880:78;;23041:7;;23050:15:::1;::::0;23067:6;;22974:100:::1;:::i;:::-;;;;;;;;23088:6;23085:1701;;;23147:18;::::0;;;:10:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;23147:25:18;::::1;::::0;;;;;;;;23138:43:::1;::::0;23174:6;23138:8:::1;:43::i;:::-;23110:18;::::0;;;:10:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;23110:25:18;::::1;::::0;;;;;;;:71;23199:8;23196:961:::1;;23227:46;;:::i;:::-;23276:303;;;;;;;;23336:8;-1:-1:-1::0;;;;;23276:303:18::1;;;;;23374:5;-1:-1:-1::0;;;;;23276:303:18::1;;;;;23414:5;-1:-1:-1::0;;;;;23408:17:18::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;23408:19:18::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;23276:303;;;;23458:6;23276:303;;;;23495:64;23510:7;23519:39;23548:8;23519:21;:39::i;23495:64::-;23276:303:::0;;23598:17:::1;::::0;;;:9:::1;:17;::::0;;;;;;;:36;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;;;;;23598:36:18;;::::1;-1:-1:-1::0;;;;;;23598:36:18;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;23227:352;;-1:-1:-1;23227:352:18;;23598:36:::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;23598:36:18::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;-1:-1:-1;;23692:17:18;;;:9:::1;:17;::::0;;;;;;;:24;23656:15:::1;:23:::0;;;;;-1:-1:-1;;;;;23656:33:18;::::1;::::0;;;;;;;;:60;23196:961:::1;;;23770:47;23820:17:::0;;;:9:::1;:17;::::0;;;;:26;;-1:-1:-1;;23838:7:18;;;23820:26;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;23868:21:::0;;23820:26;;-1:-1:-1;;;;;;23868:31:18;;::::1;:21:::0;::::1;:31;23865:277;;;23945:37;23954:12;:19;;;23975:6;23945:8;:37::i;:::-;23923:19;::::0;::::1;:59:::0;24036:19:::1;::::0;::::1;::::0;24027:95:::1;::::0;24057:64:::1;24072:7:::0;24081:39:::1;24110:8:::0;24081:21:::1;:39::i;24057:64::-;24027:8;:95::i;:::-;24005:19;::::0;::::1;:117:::0;23865:277:::1;23196:961;;23085:1701;;;24208:9:::0;;24205:570:::1;;24237:47;24287:17:::0;;;:9:::1;:17;::::0;;;;:26;;-1:-1:-1;;24305:7:18;;;24287:26;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;24335:21:::0;;24287:26;;-1:-1:-1;;;;;;24335:31:18;;::::1;:21:::0;::::1;:31;24332:277;;;24412:37;24421:12;:19;;;24442:6;24412:8;:37::i;:::-;24390:19;::::0;::::1;:59:::0;24503:19:::1;::::0;::::1;::::0;24494:95:::1;::::0;24524:64:::1;24539:7:::0;24548:39:::1;24577:8:::0;24548:21:::1;:39::i;24524:64::-;24494:8;:95::i;:::-;24472:19;::::0;::::1;:117:::0;24332:277:::1;24630:18;::::0;;;:10:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;24630:25:18;::::1;::::0;;;;;;;;:35;-1:-1:-1;24627:132:18::1;;24725:18;::::0;;;:10:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;24725:25:18;::::1;::::0;;;;;;;;24716:43:::1;::::0;24752:6;24716:8:::1;:43::i;:::-;24688:18;::::0;;;:10:::1;:18;::::0;;;;;;;-1:-1:-1;;;;;24688:25:18;::::1;::::0;;;;;;;:71;24627:132:::1;24205:570;;2097:1;;22629:2164:::0;;;;;;;;;:::o;1154:85:9:-;1200:7;1226:6;-1:-1:-1;;;;;1226:6:9;1154:85;:::o;11534:173:18:-;2319:6;;:22;;-1:-1:-1;;;2319:22:18;;11631:27;;11611:10;;2299:12;;-1:-1:-1;;;;;2319:6:18;;:14;;:22;;11611:10;;2319:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2298:43;;;;2360:4;-1:-1:-1;;;2360:10:18;:24;;;;2374:4;-1:-1:-1;;;2374:10:18;2360:24;2352:55;;;;-1:-1:-1;;;2352:55:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;11677:22:18;::::1;;::::0;;;:13:::1;:22;::::0;;;;;;;11670:29;;;;;;::::1;::::0;;;;;;;;;;;;11677:22;;11670:29;::::1;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;11670:29:18;;::::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;::::1;;::::0;;::::1;-1:-1:-1::0;;11670:29:18;;;::::1;;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;11534:173:::0;;;;;:::o;30656:211::-;30735:20;;;;:12;:20;;;;;;;2696:8;;;:24;;-1:-1:-1;;;2696:24:18;;30723:10;;-1:-1:-1;;;;;30735:20:18;;;;;;2696:8;;:14;;:24;;30735:20;;2696:24;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2683:37;;2743:6;-1:-1:-1;;;;;2739:10:18;:2;-1:-1:-1;;;;;2739:10:18;;2731:41;;;;-1:-1:-1;;;2731:41:18;;;;;;;:::i;:::-;30800:12:::1;;;;;;;;;-1:-1:-1::0;;;;;30800:12:18::1;-1:-1:-1::0;;;;;30786:44:18::1;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;30773:8:18::1;30768:64:::0;-1:-1:-1;30843:16:18::1;::::0;-1:-1:-1;30852:6:18;30843:8:::1;:16::i;:::-;30656:211:::0;;;;:::o;11257:153::-;-1:-1:-1;;;;;11373:19:18;;;11347:7;11373:19;;;:9;:19;;;;;;;;:29;;;;;;;;;;11257:153;;;;;:::o;12718:214::-;2173:17;;12809:10;;-1:-1:-1;;;;;2173:17:18;2165:25;;2157:61;;;;-1:-1:-1;;;2157:61:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;12881:25:18;;::::1;;::::0;;;:15:::1;:25;::::0;;;;;;;:33;;::::1;::::0;;;;;;;12868:56:::1;::::0;12916:7;12868:12:::1;:56::i;:::-;-1:-1:-1::0;;;;;12832:25:18;;::::1;;::::0;;;:15:::1;:25;::::0;;;;;;;:33;;;::::1;::::0;;;;;;;;;;:92;-1:-1:-1;;12718:214:18:o;10961:288::-;2501:6;;:22;;-1:-1:-1;;;2501:22:18;;11073:10;;2481:12;;-1:-1:-1;;;;;2501:6:18;;;;:14;;:22;;11073:10;;2501:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2480:43;;;;2542:4;-1:-1:-1;;;2542:10:18;2534:50;;;;-1:-1:-1;;;2534:50:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;11126:15:18;;::::1;11095:28;11126:15:::0;;;:8:::1;:15;::::0;;;;;;;:24;;::::1;::::0;;;;;;;;:27;;11095:28;;11126:27:::1;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;11167:7:::0;;11126:27;;-1:-1:-1;;;;;;11167:14:18;;::::1;:7:::0;::::1;:14;11164:78;;;-1:-1:-1::0;;;;;;;;11197:16:18;;::::1;;::::0;;;:9:::1;:16;::::0;;;;;;;:25;;;::::1;::::0;;;;;;;;;:33;-1:-1:-1;10961:288:18:o;24986:201::-;25078:20;;;;:12;:20;;;;;;;2696:8;;;:24;;-1:-1:-1;;;2696:24:18;;25108:35;;25066:10;;-1:-1:-1;;;;;25078:20:18;;;;;;2696:8;;;:14;;:24;;25078:20;;2696:24;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2683:37;;2743:6;-1:-1:-1;;;;;2739:10:18;:2;-1:-1:-1;;;;;2739:10:18;;2731:41;;;;-1:-1:-1;;;2731:41:18;;;;;;;:::i;:::-;25162:17:::1;::::0;;;:9:::1;:17;::::0;;;;;;;25155:24;;;;;;::::1;::::0;;;;;;;;;;;;25162:17;;25155:24;::::1;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;25155:24:18;;::::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;;::::0;;;::::1;-1:-1:-1::0;;25155:24:18;::::1;::::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;24986:201:::0;;;;;;:::o;25345:1254::-;2696:8;;;:24;;-1:-1:-1;;;2696:24:18;;25413:10;;25425:8;;2683:10;;-1:-1:-1;;;;;2696:8:18;;;;:14;;:24;;25425:8;;2696:24;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2683:37;;2743:6;-1:-1:-1;;;;;2739:10:18;:2;-1:-1:-1;;;;;2739:10:18;;2731:41;;;;-1:-1:-1;;;2731:41:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;25515:16:18;::::1;25446;25515::::0;;;:6:::1;:16;::::0;;;;:22:::1;;:29:::0;25446:16;;;25555:1037:::1;25574:6;25572:1;:8;25555:1037;;;-1:-1:-1::0;;;;;25612:16:18;::::1;;::::0;;;:6:::1;:16;::::0;;;;:22:::1;;:25:::0;;25635:1;;25612:25;::::1;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;25681:13;;;:5:::1;:13:::0;;;;;;;;25663:46;;-1:-1:-1;;;25663:46:18;;;;25612:25;;-1:-1:-1;;;;;;25681:13:18::1;::::0;25663:44:::1;::::0;:46:::1;::::0;;::::1;::::0;25612:25;;25663:46;;;;;25681:13;25663:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25801:5;::::0;25794:35:::1;::::0;-1:-1:-1;;;25794:35:18;;25652:57;;-1:-1:-1;25764:22:18::1;::::0;-1:-1:-1;;;;;25801:5:18;;::::1;::::0;25794:27:::1;::::0;:35:::1;::::0;25822:6;;25794:35:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;25794:35:18::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;25763:66;;;;25844:22;25869:30;25892:6;25869:22;:30::i;:::-;25844:55;;25914:27;25958:6;:13;25944:28;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;25944:28:18::1;;25914:58;;25987:37;;:::i;:::-;26027:280;;;;;;;;26077:6;26027:280;;;;26117:10;26027:280;;;;26167:36;1408:3;1341:12;26205:42;26156:92;;;;;;;;;:::i;:::-;;::::0;;;;::::1;-1:-1:-1::0;;26156:92:18;;;;;;26027:280;;;26286:5:::1;26156:92;26027:280:::0;;::::1;::::0;;;;26338:5:::1;::::0;26331:78;;-1:-1:-1;;;26331:78:18;;25987:320;;-1:-1:-1;;;;;;26338:5:18::1;::::0;26331:22:::1;::::0;:78:::1;::::0;26354:6;;26370:4:::1;::::0;;;25987:320;;26331:78:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26438:6;26429:43;26446:8;26456:15;26429:43;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;26487:25:18;;::::1;26513:16;::::0;;;:6:::1;:16;::::0;;;;;;:23:::1;;::::0;26538:41;;-1:-1:-1;;;26538:41:18;;26487:25;;::::1;::::0;26513:23;::::1;::::0;26487:25;;26538:26:::1;::::0;:41:::1;::::0;26573:4:::1;::::0;26538:41:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26487:93;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;25582:3:18::1;::::0;;::::1;::::0;-1:-1:-1;25555:1037:18::1;::::0;-1:-1:-1;;25555:1037:18::1;2071:225:9::0;1358:59;1378:10;1367:7;:5;:7::i;1358:59::-;2151:58:::1;-1:-1:-1::0;;;;;2160:22:9;::::1;::::0;::::1;9553:3:0;2151:8:9;:58::i;:::-;2245:6;::::0;;2224:38:::1;::::0;-1:-1:-1;;;;;2224:38:9;;::::1;::::0;2245:6;::::1;::::0;2224:38:::1;::::0;::::1;2272:6;:17:::0;;-1:-1:-1;;;;;;2272:17:9::1;-1:-1:-1::0;;;;;2272:17:9;;;::::1;::::0;;;::::1;::::0;;2071:225::o;8351:1377:18:-;8523:4;;-1:-1:-1;;;8523:4:18;;;;8522:5;8514:31;;;;-1:-1:-1;;;8514:31:18;;;;;;;:::i;:::-;8556:4;:11;;-1:-1:-1;;;;8556:11:18;-1:-1:-1;;;8556:11:18;;;8599:6;;:26;;-1:-1:-1;;;8599:26:18;;8556:11;;-1:-1:-1;;;;;8599:6:18;;:14;;:26;;8614:10;;8599:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;8644:8:18;;;:28;;-1:-1:-1;;;8644:28:18;;8578:47;;-1:-1:-1;;;;;;8644:8:18;;:21;;:28;;8666:5;;8644:28;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;;8674:4;8644:34;;:48;;;8682:4;-1:-1:-1;;;8682:10:18;8644:48;8636:80;;;;-1:-1:-1;;;8636:80:18;;;;;;;:::i;:::-;8730:4;-1:-1:-1;;;8730:10:18;8727:971;;;8814:10;8798:27;;;;:15;:27;;;;;;;;-1:-1:-1;;;;;8798:34:18;;;;;;;;;;;;8759:37;;-1:-1:-1;;;8759:37:18;;:22;;:37;;8790:4;;8759:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:73;;:120;;;;-1:-1:-1;8852:10:18;8836:27;;;;:15;:27;;;;;;;;-1:-1:-1;;;;;8836:34:18;;;;;;;;;;:43;-1:-1:-1;8836:43:18;8759:120;8756:605;;;8982:10;8966:27;;;;:15;:27;;;;;;;;-1:-1:-1;;;;;8966:34:18;;;;;;;;;;8953:57;;9002:7;8953:12;:57::i;:::-;8932:10;8916:27;;;;:15;:27;;;;;;;;-1:-1:-1;;;;;8916:34:18;;;;;;;;;:94;;;;9029:67;;8944:5;9053:4;9059:7;9068;9077;9086:3;9091:4;9029;:67::i;:::-;8756:605;;;9135:34;;-1:-1:-1;;;9135:34:18;;9171:7;;-1:-1:-1;;;;;9135:22:18;;;;;:34;;9158:10;;9135:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;9132:229;;9198:61;;-1:-1:-1;;;9198:61:18;;-1:-1:-1;;;;;9198:25:18;;;;;:61;;9224:10;;9244:4;;9251:7;;9198:61;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9278:67;9283:10;9295:5;9302:4;9308:7;9317;9326;9335:3;9340:4;9278;:67::i;:::-;9399:5;-1:-1:-1;;;;;9380:75:18;;9387:10;9406:7;9415;9424;9433:3;9438:4;9444;9450;9380:75;;;;;;;;;;;;;:::i;:::-;;;;;;;;8727:971;;;9485:29;;-1:-1:-1;;;9485:29:18;;9516:7;;-1:-1:-1;;;;;9485:22:18;;;;;:29;;9508:5;;9485:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:38;9482:216;;9552:56;;-1:-1:-1;;;9552:56:18;;-1:-1:-1;;;;;9552:25:18;;;;;:56;;9578:5;;9593:4;;9600:7;;9552:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9623:62;9628:5;9635;9642:4;9648:7;9657;9666;9675:3;9680:4;9623;:62::i;:::-;-1:-1:-1;;9708:4:18;:12;;-1:-1:-1;;;;9708:12:18;;;-1:-1:-1;;;;;;;8351:1377:18:o;11878:196::-;2319:6;;:22;;-1:-1:-1;;;2319:22:18;;11994:27;;11974:10;;2299:12;;-1:-1:-1;;;;;2319:6:18;;:14;;:22;;11974:10;;2319:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2298:43;;;;2360:4;-1:-1:-1;;;2360:10:18;:24;;;;2374:4;-1:-1:-1;;;2374:10:18;2360:24;2352:55;;;;-1:-1:-1;;;2352:55:18;;;;;;;:::i;:::-;-1:-1:-1;;;;;12040:16:18;;::::1;;::::0;;;:8:::1;:16;::::0;;;;;;;:26;;::::1;::::0;;;;;;;;12033:33;;;;;;::::1;::::0;;;;;;;;;;12040:26;;12033:33;;;::::1;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;12033:33:18;;::::1;::::0;;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;::::1;;::::0;;::::1;-1:-1:-1::0;;12033:33:18;;;::::1;;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;11878:196:::0;;;;;;:::o;948:166:5:-;1006:7;1025:37;1039:1;1034;:6;;4370:1:0;1025:8:5;:37::i;:::-;-1:-1:-1;1084:5:5;;;948:166::o;866:101:0:-;935:9;930:34;;946:18;954:9;946:7;:18::i;:::-;866:101;;:::o;34448:424:18:-;34516:7;34617:21;34655:5;-1:-1:-1;;;;;34641:30:18;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34617:56;;;;34751:26;34780:27;34789:2;34793:13;34780:8;:27::i;:::-;34842:2;:22;893:4:3;34825:39:18;;;-1:-1:-1;;;;34448:424:18:o;35412:585::-;35492:7;35948:41;35967:6;35975:13;35948:18;:41::i;:::-;35941:48;35412:585;-1:-1:-1;;;35412:585:18:o;13709:5680::-;13920:19;13950:21;13982:12;14005:23;14039:22;14072:19;14153:8;-1:-1:-1;;;;;14107:54:18;:13;14149:1;14121:17;:27;14139:8;-1:-1:-1;;;;;14121:27:18;-1:-1:-1;;;;;14121:27:18;;;;;;;;;;;;;:29;14107:44;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14107:44:18;:54;14104:5278;;;14276:6;14272:4934;14288:13;:20;14286:22;;14272:4934;;;14372:8;-1:-1:-1;;;;;14354:26:18;:13;14368:1;14354:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14354:16:18;:26;14351:4840;;14431:13;14445:1;14431:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14431:16:18;;;14755:14;;;:8;:14;;;;;;:24;;;;;;;;;;;:31;;-1:-1:-1;14431:16:18;-1:-1:-1;14813:4334:18;14829:13;14827:1;:15;14813:4334;;;-1:-1:-1;;;;;14899:18:18;;;;;;;:8;:18;;;;;;;;:24;;;;;;;;;;;:27;;:24;;:18;:27;;;;;;;;;;;;:41;:27;;;;;:41;;;;;-1:-1:-1;;;;;14988:18:18;;;;;:8;:18;;;;;;:24;;;;;;;;;;:27;;14899:41;;-1:-1:-1;14988:24:18;14899:27;14988;;;;;;;;;;;;;;:31;;;14971:48;;15064:8;:14;15073:4;-1:-1:-1;;;;;15064:14:18;-1:-1:-1;;;;;15064:14:18;;;;;;;;;;;;:24;15079:8;-1:-1:-1;;;;;15064:24:18;-1:-1:-1;;;;;15064:24:18;;;;;;;;;;;;15089:1;15064:27;;;;;;;;;;;;;;;;;;:41;;;15050:55;;15150:8;:14;15159:4;-1:-1:-1;;;;;15150:14:18;-1:-1:-1;;;;;15150:14:18;;;;;;;;;;;;:24;15165:8;-1:-1:-1;;;;;15150:24:18;-1:-1:-1;;;;;15150:24:18;;;;;;;;;;;;15175:1;15150:27;;;;;;;;;;;;;;;;;;;;;:33;-1:-1:-1;;;;;15150:33:18;;-1:-1:-1;15329:14:18;;15326:3794;;-1:-1:-1;;;;;15724:14:18;;;;;;;:8;:14;;;;;;;;:24;;;;;;;;;:27;;15665:107;;15674:11;;15749:1;;15724:27;;;;;;;;;;;;;;;;:41;;;15767:4;15665:8;:107::i;:::-;15540:84;15549:14;15602:15;15619:4;15540:8;:84::i;:::-;:232;15536:3553;;-1:-1:-1;;;;;15919:26:18;;;;;;;:16;:26;;;;;;;;:32;;;;;;;;;;15916:306;;-1:-1:-1;;;;;15998:22:18;;;;;;;:12;:22;;;;;;;;:33;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15998:33:18;;;;;;;;;16109:22;;;:29;;16074:16;:26;;;;;:32;;;;;;;:64;15916:306;-1:-1:-1;;;;;16517:18:18;;;;;;;:8;:18;;;;;;;;:24;;;;;;;;;:33;16384:88;16393:14;16450:15;16467:4;16384:8;:88::i;:::-;:166;:249;;;-1:-1:-1;;;;;;16597:18:18;;;;;;;:8;:18;;;;;;;;:24;;;;;;;;;:33;:36;16384:249;16381:660;;;16799:202;16818:61;16827:14;16843:35;16872:4;16843:21;:35::i;16818:61::-;16934:66;16943:15;16960:39;16989:8;16960:21;:39::i;16934:66::-;16799:18;:202::i;:::-;-1:-1:-1;;;;;16718:18:18;;;;;;;:8;:18;;;;;;;;:24;;;;;;;;;:283;16381:660;-1:-1:-1;;;;;17154:18:18;;;;;;;:8;:18;;;;;;;;:24;;;;;;;;;:37;;;:212;;;17567:38;;;17558:114;;17660:11;17558:8;:114::i;:::-;-1:-1:-1;;;;;17463:18:18;;;;;;;:8;:18;;;;;;;;:24;;;;;;;;;:38;;:209;17830:18;;:::i;:::-;17851:346;;;;;;;;17905:11;-1:-1:-1;;;;;17851:346:18;;;;;17974:4;-1:-1:-1;;;;;17851:346:18;;;;;18036:11;17851:346;;;;18103:1;17851:346;;;;18156:1;17851:346;;;17830:367;;18236:18;:28;18255:8;-1:-1:-1;;;;;18236:28:18;-1:-1:-1;;;;;18236:28:18;;;;;;;;;;;;18270:8;18236:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18236:43:18;;;;;-1:-1:-1;;;;;18236:43:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18236:43:18;;;;;-1:-1:-1;;;;;18236:43:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18338:8;-1:-1:-1;;;;;18325:107:18;;18356:4;18363:11;18376:4;18382:11;18395:8;:19;;;18416:8;:15;;;18325:107;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;18558:27:18;;;;;;:17;:27;;;;;;18545:54;;18587:11;18545:12;:54::i;:::-;-1:-1:-1;;;;;18473:27:18;;;;;;:17;:27;;;;;:126;;;;:27;-1:-1:-1;15536:3553:18;;-1:-1:-1;15536:3553:18;;-1:-1:-1;;;;;19005:28:18;;;;;;;:15;:28;;;;;;;;:34;;;;;;;;;;18992:61;;19041:11;18992:12;:61::i;:::-;-1:-1:-1;;;;;18913:28:18;;;;;;;:15;:28;;;;;;;;:34;;;;;;;;;:140;15536:3553;14844:3;;14813:4334;;;;14351:4840;14310:3;;14272:4934;;;-1:-1:-1;;;;;;19223:22:18;;19254:1;19223:22;;;:12;:22;;;;;:29;:32;19220:151;;19275:32;19286:8;19296:10;19275;:32::i;:::-;-1:-1:-1;;;;;19333:22:18;;;;;;:12;:22;;;;;19326:29;;;:::i;27338:1759::-;27438:9;27450:23;;;:15;:23;;;;;;;;-1:-1:-1;;;;;27450:33:18;;;;;;;;;;27502:3;27494:35;;;;-1:-1:-1;;;27494:35:18;;;;;;;:::i;:::-;27566:17;;;;:9;:17;;;;;:20;;-1:-1:-1;;27544:3:18;;;;-1:-1:-1;;;;;27566:39:18;;;:17;27544:3;;27566:20;;;;;;;;;;;;;;;;;;;:29;-1:-1:-1;;;;;27566:29:18;:39;27558:80;;;;-1:-1:-1;;;27558:80:18;;;;;;;:::i;:::-;27657:17;;;;:9;:17;;;;;:20;;27688:4;;27657:17;27675:1;;27657:20;;;;;;;;;;;;;;;;:27;;;:35;;27649:74;;;;-1:-1:-1;;;27649:74:18;;;;;;;:::i;:::-;27744:24;28007:13;;;:5;:13;;;;;;;;;27989:46;;-1:-1:-1;;;27989:46:18;;;;27744:24;;;;;;;;-1:-1:-1;;;;;28007:13:18;;;;27989:44;;:46;;;;;;;;;;;28007:13;27989:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27972:63;;28105:53;28124:4;28130:9;:17;28140:6;28130:17;;;;;;;;;;;28148:1;28130:20;;;;;;;;;;;;;;;;;;:27;;;28105:18;:53::i;:::-;28208:17;;;;:9;:17;;;;;:20;;28086:72;;-1:-1:-1;28199:43:18;;28226:1;;28208:20;;;;;;;;;;;;;;;;:27;;;28237:4;28199:8;:43::i;:::-;28169:17;;;;:9;:17;;;;;:20;;28187:1;;28169:20;;;;;;;;;;;;;;;;:27;;:73;;;;28266:9;:17;28276:6;28266:17;;;;;;;;;;;28284:1;28266:20;;;;;;;;;;;;;;;;;;:27;;;28253:40;;28323:104;28332:9;:17;28342:6;28332:17;;;;;;;;;;;28350:1;28332:20;;;;;;;;;;;;;;;;;;:27;;;28361:65;28380:9;:17;28390:6;28380:17;;;;;;;;;;;28398:1;28380:20;;;;;;;;;;;;;;;;;;:27;;;28409:16;28361:18;:65::i;28323:104::-;28304:123;;28458:94;28467:17;28486:65;28505:9;:17;28515:6;28505:17;;;;;;;;;;;28523:1;28505:20;;;;;;;28458:94;28610:18;;;;:10;:18;;;;;;;;-1:-1:-1;;;;;28610:25:18;;;;;;;;;;28438:114;;-1:-1:-1;28601:47:18;;28637:10;28601:8;:47::i;:::-;28573:18;;;;:10;:18;;;;;;;;-1:-1:-1;;;;;28573:25:18;;;;;;;;;;;:75;;;;28664:87;28584:6;;28664:87;;;;28680:8;;28690:6;;28698:16;;28592:5;;28723:10;;28735:15;;28664:87;:::i;:::-;;;;;;;;28830:1;28794:23;;;:15;:23;;;;;;;;-1:-1:-1;;;;;28794:33:18;;;;;;;;;;:37;;;;28847:85;28810:6;;28847:85;;;;28818:8;;28876:6;;28884:17;;28903:5;;28910:4;;28916:15;;28847:85;:::i;:::-;;;;;;;;-1:-1:-1;;;;;28945:27:18;;;28983:16;;;;:8;:16;;;;;;;;:23;;;;;;;;;;;:26;;28945:27;;;;28973:8;;28983:23;:16;:26;;;;;;;;;;;;;;;;;:32;28945:89;;-1:-1:-1;;;;;;28945:89:18;;;;;;;;;;-1:-1:-1;;;;;28983:32:18;;29017:16;;28945:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;29045:44:18;;-1:-1:-1;;;29045:44:18;;-1:-1:-1;;;;;29045:22:18;;;;;:44;;29068:8;;29078:10;;29045:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;35082:162::-;35168:7;35195:41;35214:6;35222:13;35195:18;:41::i;367:166:5:-;425:7;456:5;;;471:37;480:6;;;;425:7;471:8;:37::i;30879:2476:18:-;30940:16;30977:13;;;:5;:13;;;;;;;;;30959:46;;-1:-1:-1;;;30959:46:18;;;;-1:-1:-1;;;;;30977:13:18;;;;30959:44;;:46;;;;;;;;;;;30977:13;30959:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31017:14;31043:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;31043:20:18;;;31034:30;;:8;:30;;;;;:40;;;;;;;;;;:43;;30940:65;;-1:-1:-1;31017:14:18;;;;31034:43;;;;;;;;;;;;;;;;;;;:49;31126:18;;;:10;:18;;;;;;-1:-1:-1;;;;;31126:28:18;;;;;;;;;;31034:49;;;-1:-1:-1;31117:79:18;;31156:39;31145:8;31156:21;:39::i;31117:79::-;31207:18;31238:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;31238:20:18;;;31228:31;;:9;:31;;;;;:41;;;;;;;;;;;31094:102;;-1:-1:-1;31207:18:18;31228:44;:226;;31412:31;31422:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;31422:20:18;;;31412:31;;:9;:31;;;;;:41;;;;;;;;;;;31379:75;;31398:12;;31379:18;:75::i;:::-;31228:226;;;31275:51;31294:12;31308:17;;31275:18;:51::i;:::-;31207:247;;31465:32;31511:23;31561:6;31557:1426;31573:40;31592:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;31592:20:18;31573:40;;:18;:40;;;;;:47;31571:49;;31557:1426;;;31687:40;31706:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;31706:20:18;31687:40;;:18;:40;;;;;:43;;31668:117;;31687:40;31728:1;;31687:43;;;;;;;;;;;;;;:56;:43;;;;;:56;;;;;31763:20;;;:12;:20;;;;;;;-1:-1:-1;;;;;31763:20:18;31745:39;;:17;:39;;;;;;31668:18;:117::i;:::-;31641:144;;31818:117;31837:56;31856:10;31868:24;31837:18;:56::i;:::-;31895:39;31924:8;31895:21;:39::i;31818:117::-;31961:17;;;32081:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;32081:20:18;;;32062:40;;:18;:40;;;;;;:43;;31800:135;;-1:-1:-1;31961:17:18;;;31950:40;;31800:135;;32103:1;;32062:43;;;;;;;;;;;;;;:56;:43;;;;;:56;;;;;32192:20;;;:12;:20;;;;;;;-1:-1:-1;;;;;32192:20:18;;;32173:40;;:18;:40;;;;;;:43;;32062:56;;;;;32173:40;32214:1;;32173:43;;;;;;;;;;;;;;;;;;;:49;31950:273;;-1:-1:-1;;;;;;31950:273:18;;;;;;;;;;;-1:-1:-1;;;;;32173:49:18;;31950:273;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;32264:40:18;32283:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;32283:20:18;;;32264:40;;:18;:40;;;;;;:43;;32238:25;;;;-1:-1:-1;32238:25:18;;32305:1;;32264:43;;;;;;;;;;;;;;;;;;;:49;32351:8;;-1:-1:-1;;;;;32264:49:18;;;;32315:45;;32334:15;;32315:18;:45::i;:::-;32238:123;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;32438:40:18;32457:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;32457:20:18;32438:40;;:18;:40;;;;;:43;;32429:77;;32438:40;32479:1;;32438:43;;;;;;;;;;;;;;;;:50;;;32490:15;32429:8;:77::i;:::-;32376:40;32395:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;32395:20:18;32376:40;;:18;:40;;;;;:43;;32417:1;;32376:43;;;;;;;;;;;;;;;;:50;;:130;;;;32548:141;32567:80;32586:24;32612:34;32621:12;32635:10;32612:8;:34::i;:::-;32567:18;:80::i;32548:141::-;32717:40;32736:20;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;32736:20:18;32717:40;;:18;:40;;;;;:43;;32521:168;;-1:-1:-1;32704:94:18;;32758:1;;32717:43;;;;;;;;;;;;;;;;:54;;;32773:24;32704:12;:94::i;:::-;-1:-1:-1;32838:20:18;;;;:12;:20;;;;;;;;;-1:-1:-1;;;;;32838:20:18;32870:40;;;:18;:40;;;;;;:43;;32830:6;;32818:153;;32838:20;;32860:8;;32870:40;32911:1;;32870:43;;;;;;;;;;;;;;;;;;;:49;32818:153;;;;;;-1:-1:-1;;;;;32870:49:18;;32921:15;;32938:6;;32946:24;;32818:153;:::i;:::-;;;;;;;;31622:3;;31557:1426;;;;33006:71;33025:10;33037:39;33066:8;33037:21;:39::i;33006:71::-;32993:84;;33105:94;33114:4;:14;33119:8;-1:-1:-1;;;;;33114:14:18;-1:-1:-1;;;;;33114:14:18;;;;;;;;;;;;;33130:68;33145:10;33157:40;33176:10;33188:8;;33157:18;:40::i;33105:94::-;-1:-1:-1;;;;;33088:14:18;;;;;;:4;:14;;;;;;;;:111;;;;33253:18;;;:10;:18;;;;;:28;;;;;;;;;;33210:25;;33236:6;;33244:50;;33283:10;33244:8;:50::i;:::-;33210:85;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;33313:17:18;;;;:9;:17;;;;;33306:24;;;:::i;34045:229::-;34250:6;34225:42::o;1353:121:10:-;1411:7;1437:30;1441:1;1444;4370::0;1437:3:10;:30::i;9736:850:18:-;9894:27;;:::i;:::-;9924:285;;;;;;;;9965:6;-1:-1:-1;;;;;9924:285:18;;;;;9995:5;-1:-1:-1;;;;;9924:285:18;;;;;10068:8;9924:285;;;;10030:8;9924:285;;;;10096:4;9924:285;;;;10121:5;9924:285;;;;10159:4;9924:285;;;;10192:5;9924:285;;;9894:315;;10220:13;10236:8;:15;10245:5;-1:-1:-1;;;;;10236:15:18;-1:-1:-1;;;;;10236:15:18;;;;;;;;;;;;:24;10252:7;-1:-1:-1;;;;;10236:24:18;-1:-1:-1;;;;;10236:24:18;;;;;;;;;;;;:31;;;;10220:47;;10278:8;:15;10287:5;-1:-1:-1;;;;;10278:15:18;-1:-1:-1;;;;;10278:15:18;;;;;;;;;;;;:24;10294:7;-1:-1:-1;;;;;10278:24:18;-1:-1:-1;;;;;10278:24:18;;;;;;;;;;;;10308:1;10278:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10278:32:18;;;;;-1:-1:-1;;;;;10278:32:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10278:32:18;;;;;-1:-1:-1;;;;;10278:32:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;10332:24:18;;;;;;:17;:24;;;;;;10329:157;;10387:13;:25;;;;;;;;;;;-1:-1:-1;;;;;;10387:25:18;-1:-1:-1;;;;;10387:25:18;;;;;;;;10454:20;;-1:-1:-1;10427:24:18;;;:17;10387:25;10427:24;;;;;:47;10329:157;-1:-1:-1;;;;;10496:22:18;;;;;;;:13;:22;;;;;;;;10524:15;;;;;:8;:15;;;;;:24;;;;;;;:31;;10549:5;;10524:31;;;;;;;;;;;;;;10496:60;;;;;;;;;;;;;;;10524:31;;;;;;;10496:60;;;;;;;;;;;-1:-1:-1;;;;;;10496:60:18;;;-1:-1:-1;;;;;10496:60:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10524:31;;10496:60;;;;;;;;;;;;;;-1:-1:-1;;10496:60:18;;;;:::i;:::-;;;;9736:850;;;;;;;;;;:::o;1074:3172:0:-;-1:-1:-1;;;3588:3:0;3581:79;;;3799:66;3793:4;3786:80;3941:1;3935:4;3928:15;2999:73;2210:2;2243:18;;;2288;;;2215:4;2284:29;;;3040:1;3036:14;2195:18;;;;3025:26;;;;2336:18;;;;2383;;;2379:29;;;3057:2;3053:17;3021:50;;;;2999:73;2994:3;2990:83;4008:4;4001:26;4234:3;;4224:14;1647:209:3;1709:7;1746:5;;;1761:57;1770:6;;;:26;;;1795:1;1790;1780:7;:11;;;;;;:16;1770:26;4467:1:0;1761:8:3;:57::i;:::-;893:4;1836:13;;;;-1:-1:-1;;;1647:209:3:o;1979:172:5:-;2081:7;2107;:37;;2131:13;2139:1;2142;2131:7;:13::i;:::-;2107:37;;;2117:11;2123:1;2126;2117:5;:11::i;:::-;2100:44;1979:172;-1:-1:-1;;;;1979:172:5:o;2485:355:3:-;2547:7;2566:38;2575:6;;;4516:1:0;2566:8:3;:38::i;:::-;2619:6;2615:219;;-1:-1:-1;2648:1:3;2641:8;;2615:219;893:4;2700:7;;;;2721:51;;2700:1;:7;:1;2730:13;;;;;:20;4564:1:0;2721:8:3;:51::i;:::-;2822:1;2810:9;:13;;;;;;2803:20;;;;;19401:1938:18;-1:-1:-1;;;;;19503:22:18;;19479:21;19503:22;;;:12;:22;;;;;:29;;19609:1723;19625:13;19623:1;:15;19609:1723;;;-1:-1:-1;;;;;19677:22:18;;19659:15;19677:22;;;:12;:22;;;;;:25;;19700:1;;19677:25;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19742:18:18;;;;;:8;:18;;;;;;19677:25;;;;19742:27;;;;;;;;:40;;;;19818:41;;;;;19677:25;;-1:-1:-1;19742:40:18;19886:60;;:::i;:::-;19949:590;;;;;;;;;;;;;;;-1:-1:-1;;;19949:590:18;;;;;;;;;;;;;;;;-1:-1:-1;;;19949:590:18;;;;;;;;;;;;;;;-1:-1:-1;;;;;19949:590:18;;;;;;;;;;;;;;;;;;-1:-1:-1;20180:18:18;;;:8;:18;;;;;:27;;;;;;;;:36;19949:590;;;;20254:18;;;:8;:18;;;;;:27;;;;;;;;;:30;;19949:590;;;;;;20254:30;;;;;;;;;;;;;;:47;;;19949:590;;;;20335:14;19949:590;;;;20388:17;;19949:590;;;;20437:10;19949:590;;;;20480:8;:18;20489:8;-1:-1:-1;;;;;20480:18:18;-1:-1:-1;;;;;20480:18:18;;;;;;;;;;;;:27;20499:7;-1:-1:-1;;;;;20480:27:18;-1:-1:-1;;;;;20480:27:18;;;;;;;;;;;;20508:1;20480:30;;;;;;;;;;;;;;;;;:43;:30;;;;;:43;19949:590;;;;;;;-1:-1:-1;;19949:590:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20480:43;19949:590;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;19949:590:18;;;;-1:-1:-1;;20600:5:18;;20570:52;;-1:-1:-1;;;20570:52:18;;19886:653;;-1:-1:-1;;;;;;20570:29:18;;;;;;:52;;20600:5;;20607:14;;20570:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20682:7:18;;20657:52;;-1:-1:-1;;;20657:52:18;;20638:16;;-1:-1:-1;;;;;;20682:7:18;;;;-1:-1:-1;20657:40:18;;:52;;20698:10;;20657:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20802:18:18;;;;;;;:8;:18;;;;;;;;:27;;;;;;;;;;;:30;;20638:71;;-1:-1:-1;20802:27:18;:30;;;;;;;;;;;;;;;;;;;:36;-1:-1:-1;;;;;20776:16:18;;;;;:6;:16;;;;;;:23;;;:62;;-1:-1:-1;;;;;;20776:62:18;20802:36;;;20776:62;;;;;;;20853:38;;;;20921:39;;-1:-1:-1;;;20921:39:18;;;;:37;;;;;;:39;;;;;;;;;;;:37;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20991:16:18;;;;;;;:6;:16;;;;;;;;:22;;;;:33;;;;;;;;;;;;;;;;21039:11;;;:5;:11;;;;;:22;;;;;-1:-1:-1;;;;;;21039:22:18;;;;;;21076:12;:18;;;;;:29;;;;;;;;20906:54;-1:-1:-1;21158:61:18;20906:54;20998:8;21183:7;21192:14;21208:10;21158:8;:61::i;:::-;-1:-1:-1;;;;;;;;21241:18:18;;;;;;;:8;:18;;;;;;;;:27;;;;;;;;;;;;;21234:34;;;;;;;;;;;;;;;;;;;;;;;21283:26;;;:16;:26;;;;;:35;;;;;;;;;;:37;;;;-1:-1:-1;;19640:3:18;19609:1723;;1765:176:10;1842:7;1861:27;1875:1;1870;:6;;1878:9;1861:8;:27::i;:::-;-1:-1:-1;;1910:5:10;;;1765:176::o;2157:148:5:-;2219:7;2238:38;2247:6;;;4516:1:0;2238:8:5;:38::i;:::-;2297:1;2293;:5;;;;;;;2157:148;-1:-1:-1;;;2157:148:5:o;2311:232::-;2371:7;2390:38;2399:6;;;4516:1:0;2390:8:5;:38::i;:::-;2443:6;2439:98;;-1:-1:-1;2472:1:5;2465:8;;2439:98;2525:1;2520;2516;:5;2515:11;;;;;;2511:1;:15;2504:22;;;;21351:1176:18;21519:5;;21512:33;;-1:-1:-1;;;21512:33:18;;21482:22;;-1:-1:-1;;;;;21519:5:18;;21512:27;;:33;;21540:4;;21512:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21512:33:18;;;;;;;;;;;;:::i;:::-;21481:64;;;;21556:22;21581:30;21604:6;21581:22;:30::i;:::-;21556:55;;21622:29;21668:6;:13;21654:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21654:28:18;-1:-1:-1;21732:5:18;;21709:41;;-1:-1:-1;;;21709:41:18;;21622:60;;-1:-1:-1;;;;;;21709:22:18;;;;;;:41;;21732:5;;21739:10;;21709:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;21785:5:18;;21761:46;;-1:-1:-1;;;21761:46:18;;-1:-1:-1;;;;;21761:23:18;;;;;;:46;;21785:5;;;;21792:14;;21761:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21822:9;21818:354;21837:6;:13;21833:1;:17;21818:354;;;21893:8;-1:-1:-1;;;;;21875:27:18;:6;21882:1;21875:9;;;;;;;;;;;;;;-1:-1:-1;;;;;21875:27:18;;21872:177;;;21939:14;21921:12;21934:1;21921:15;;;;;;;;;;;;;:32;;;;;21872:177;;;21994:7;-1:-1:-1;;;;;21976:26:18;:6;21983:1;21976:9;;;;;;;;;;;;;;-1:-1:-1;;;;;21976:26:18;;21973:76;;;22039:10;22021:12;22034:1;22021:15;;;;;;;;;;;;;:28;;;;;21973:76;21852:3;;21818:354;;;;22182:37;;:::i;:::-;22222:210;;;;;;;;22268:6;22222:210;;;;22303:12;22222:210;;;;22351:13;22366:12;22340:39;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;22340:39:18;;;;;;22222:210;;;22415:5;22340:39;22222:210;;;;;;;22459:5;;22452:67;;-1:-1:-1;;;22452:67:18;;22182:250;;-1:-1:-1;;;;;;22459:5:18;;22452:22;;:67;;22475:4;;22489;;;;22182:250;;22452:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1102:722::-;;1230:3;1223:4;1215:6;1211:17;1207:27;1197:2;;-1:-1;;1238:12;1197:2;1278:6;1272:13;1300:80;1315:64;1372:6;1315:64;:::i;:::-;1300:80;:::i;:::-;1408:21;;;1291:89;-1:-1;1452:4;1465:14;;;;1440:17;;;1554;;;1545:27;;;;1542:36;-1:-1;1539:2;;;1591:1;;1581:12;1539:2;1616:1;1601:217;1626:6;1623:1;1620:13;1601:217;;;3666:13;;1694:61;;1769:14;;;;1797;;;;1648:1;1641:9;1601:217;;;1605:14;;;;;1190:634;;;;:::o;3866:241::-;;3970:2;3958:9;3949:7;3945:23;3941:32;3938:2;;;-1:-1;;3976:12;3938:2;85:6;72:20;97:33;124:5;97:33;:::i;4114:263::-;;4229:2;4217:9;4208:7;4204:23;4200:32;4197:2;;;-1:-1;;4235:12;4197:2;226:6;220:13;238:33;265:5;238:33;:::i;4384:366::-;;;4505:2;4493:9;4484:7;4480:23;4476:32;4473:2;;;-1:-1;;4511:12;4473:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;4563:63;-1:-1;4663:2;4702:22;;72:20;97:33;72:20;97:33;:::i;:::-;4671:63;;;;4467:283;;;;;:::o;4757:617::-;;;;;4912:3;4900:9;4891:7;4887:23;4883:33;4880:2;;;-1:-1;;4919:12;4880:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;4971:63;-1:-1;5071:2;5110:22;;72:20;97:33;72:20;97:33;:::i;:::-;5079:63;-1:-1;5179:2;5218:22;;72:20;97:33;72:20;97:33;:::i;:::-;4874:500;;;;-1:-1;5187:63;;5287:2;5326:22;3518:20;;-1:-1;;4874:500::o;5381:1227::-;;;;;;;;;5614:3;5602:9;5593:7;5589:23;5585:33;5582:2;;;-1:-1;;5621:12;5582:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;5673:63;-1:-1;5773:2;5812:22;;2165:20;;-1:-1;5881:2;5920:22;;3518:20;;-1:-1;5989:2;6028:22;;72:20;97:33;72:20;97:33;:::i;:::-;5997:63;-1:-1;6097:3;6137:22;;3518:20;;-1:-1;6206:3;6246:22;;3518:20;;-1:-1;6315:3;6355:22;;72:20;97:33;72:20;97:33;:::i;:::-;6324:63;-1:-1;6452:3;6437:19;;6424:33;6477:18;6466:30;;6463:2;;;-1:-1;;6499:12;6463:2;6560:22;;2643:4;2631:17;;2627:27;-1:-1;2617:2;;-1:-1;;2658:12;2617:2;2705:6;2692:20;2727:65;2742:49;2784:6;2742:49;:::i;2727:65::-;2812:6;2805:5;2798:21;2916:3;5773:2;2907:6;2840;2898:16;;2895:25;2892:2;;;-1:-1;;2923:12;2892:2;60921:6;5773:2;2840:6;2836:17;5773:2;2874:5;2870:16;60898:30;-1:-1;5773:2;60968:6;2874:5;60959:16;;60952:27;6519:73;;;;;;5576:1032;;;;;;;;;;;:::o;6615:491::-;;;;6753:2;6741:9;6732:7;6728:23;6724:32;6721:2;;;-1:-1;;6759:12;6721:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;6811:63;-1:-1;6911:2;6950:22;;3518:20;;-1:-1;7019:2;7058:22;;72:20;97:33;72:20;97:33;:::i;:::-;7027:63;;;;6715:391;;;;;:::o;7113:995::-;;;;;;;;7319:3;7307:9;7298:7;7294:23;7290:33;7287:2;;;-1:-1;;7326:12;7287:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;7378:63;-1:-1;7478:2;7517:22;;3518:20;;-1:-1;7586:2;7625:22;;72:20;97:33;72:20;97:33;:::i;:::-;7594:63;-1:-1;7694:2;7733:22;;72:20;97:33;72:20;97:33;:::i;:::-;7702:63;-1:-1;7802:3;7842:22;;72:20;97:33;72:20;97:33;:::i;:::-;7811:63;-1:-1;7911:3;7951:22;;72:20;97:33;72:20;97:33;:::i;:::-;7920:63;-1:-1;8020:3;8060:22;;72:20;97:33;72:20;97:33;:::i;:::-;8029:63;;;;7281:827;;;;;;;;;;:::o;8115:823::-;;;;8329:2;8317:9;8308:7;8304:23;8300:32;8297:2;;;-1:-1;;8335:12;8297:2;8386:17;8380:24;8424:18;;8416:6;8413:30;8410:2;;;-1:-1;;8446:12;8410:2;8563:6;8552:9;8548:22;;;452:3;445:4;437:6;433:17;429:27;419:2;;-1:-1;;460:12;419:2;500:6;494:13;522:95;537:79;609:6;537:79;:::i;522:95::-;623:16;659:6;652:5;645:21;689:4;;706:3;702:14;695:21;;689:4;681:6;677:17;811:3;689:4;;795:6;791:17;681:6;782:27;;779:36;776:2;;;-1:-1;;818:12;776:2;-1:-1;844:10;;838:232;863:6;860:1;857:13;838:232;;;2475:6;2469:13;2487:48;2529:5;2487:48;:::i;:::-;931:76;;885:1;878:9;;;;;1021:14;;;;1049;;838:232;;;-1:-1;8623:18;;8617:25;8466:114;;-1:-1;8617:25;-1:-1;;;8651:30;;;8648:2;;;-1:-1;;8684:12;8648:2;;8714:89;8795:7;8786:6;8775:9;8771:22;8714:89;:::i;:::-;8704:99;;;8840:2;8894:9;8890:22;3666:13;8848:74;;8291:647;;;;;:::o;8945:257::-;;9057:2;9045:9;9036:7;9032:23;9028:32;9025:2;;;-1:-1;;9063:12;9025:2;2044:6;2038:13;2056:30;2080:5;2056:30;:::i;9209:241::-;;9313:2;9301:9;9292:7;9288:23;9284:32;9281:2;;;-1:-1;;9319:12;9281:2;-1:-1;2165:20;;9275:175;-1:-1;9275:175::o;9457:263::-;;9572:2;9560:9;9551:7;9547:23;9543:32;9540:2;;;-1:-1;;9578:12;9540:2;-1:-1;2313:13;;9534:186;-1:-1;9534:186::o;9727:366::-;;;9848:2;9836:9;9827:7;9823:23;9819:32;9816:2;;;-1:-1;;9854:12;9816:2;2178:6;2165:20;9906:63;;10006:2;10049:9;10045:22;72:20;97:33;124:5;97:33;:::i;10100:989::-;;;;;;;;10303:3;10291:9;10282:7;10278:23;10274:33;10271:2;;;-1:-1;;10310:12;10271:2;2178:6;2165:20;10362:63;;10462:2;10505:9;10501:22;72:20;97:33;124:5;97:33;:::i;:::-;10470:63;-1:-1;10570:2;10609:22;;72:20;97:33;72:20;97:33;:::i;:::-;10578:63;-1:-1;10678:2;10717:22;;3518:20;;-1:-1;10786:3;10826:22;;72:20;97:33;72:20;97:33;:::i;:::-;10795:63;-1:-1;10895:3;10935:22;;3518:20;;-1:-1;11004:3;11041:22;;1896:20;1921:30;1896:20;1921:30;:::i;11096:617::-;;;;;11251:3;11239:9;11230:7;11226:23;11222:33;11219:2;;;-1:-1;;11258:12;11219:2;2178:6;2165:20;11310:63;;11410:2;11453:9;11449:22;72:20;97:33;124:5;97:33;:::i;:::-;11418:63;-1:-1;11518:2;11557:22;;3518:20;;-1:-1;11626:2;11665:22;;72:20;97:33;72:20;97:33;:::i;:::-;11213:500;;;;-1:-1;11213:500;;-1:-1;;11213:500::o;11720:535::-;;;;11869:2;11857:9;11848:7;11844:23;11840:32;11837:2;;;-1:-1;;11875:12;11837:2;2319:6;2313:13;11927:74;;12038:2;12092:9;12088:22;2313:13;12046:74;;12157:2;12211:9;12207:22;2313:13;12165:74;;11831:424;;;;;:::o;12262:362::-;;12387:2;12375:9;12366:7;12362:23;12358:32;12355:2;;;-1:-1;;12393:12;12355:2;12444:17;12438:24;12482:18;12474:6;12471:30;12468:2;;;-1:-1;;12504:12;12468:2;12576:22;;3105:4;3093:17;;3089:27;-1:-1;3079:2;;-1:-1;;3120:12;3079:2;3160:6;3154:13;3182:65;3197:49;3239:6;3197:49;:::i;3182:65::-;3267:6;3260:5;3253:21;3371:3;12387:2;3362:6;3295;3353:16;;3350:25;3347:2;;;-1:-1;;3378:12;3347:2;3398:39;3430:6;12387:2;3329:5;3325:16;12387:2;3295:6;3291:17;3398:39;:::i;:::-;12524:84;12349:275;-1:-1;;;;;12349:275::o;13149:491::-;;;;13287:2;13275:9;13266:7;13262:23;13258:32;13255:2;;;-1:-1;;13293:12;13255:2;3531:6;3518:20;13345:63;;13445:2;13488:9;13484:22;72:20;97:33;124:5;97:33;:::i;:::-;13453:63;-1:-1;13553:2;13592:22;;72:20;97:33;72:20;97:33;:::i;13647:672::-;;;;;13813:3;13801:9;13792:7;13788:23;13784:33;13781:2;;;-1:-1;;13820:12;13781:2;-1:-1;;3666:13;;13983:2;14033:22;;3666:13;14102:2;14152:22;;3666:13;14221:2;14271:22;;;3666:13;;;;;-1:-1;3666:13;;-1:-1;13775:544;-1:-1;13775:544::o;14326:259::-;;14439:2;14427:9;14418:7;14414:23;14410:32;14407:2;;;-1:-1;;14445:12;14407:2;3811:6;3805:13;59732:4;62326:5;59721:16;62303:5;62300:33;62290:2;;-1:-1;;62337:12;15949:137;-1:-1;;;;;59516:54;16036:45;;16030:56::o;20383:670::-;;20566:5;55392:12;57131:6;57126:3;57119:19;57168:4;;57163:3;57159:14;20578:83;;57168:4;20732:5;54522:14;-1:-1;20771:260;20796:6;20793:1;20790:13;20771:260;;;20857:13;;22063:37;;15772:14;;;;56447;;;;20818:1;20811:9;20771:260;;;-1:-1;21037:10;;20497:556;-1:-1;;;;;20497:556::o;21790:94::-;58954:13;58947:21;21845:34;;21839:45::o;22232:323::-;;22364:5;55392:12;57131:6;57126:3;57119:19;22447:52;22492:6;57168:4;57163:3;57159:14;57168:4;22473:5;22469:16;22447:52;:::i;:::-;61354:7;61338:14;-1:-1;;61334:28;22511:39;;;;57168:4;22511:39;;22312:243;-1:-1;;22312:243::o;27940:1142::-;28175:23;;28107:4;28211:38;;;55392:12;;28098:14;;;57119:19;;;27940:1142;;57168:4;;54522:14;;;;57159;;;;27940:1142;16795:290;16820:6;16817:1;16814:13;16795:290;;;16881:13;;-1:-1;;;;;59516:54;22638:65;;56447:14;;;;14776;;;;6477:18;16835:9;16795:290;;;16799:14;;57168:4;28469:5;28465:16;28459:23;28439:43;;28528:3;28522:4;28518:14;57168:4;28506:3;28502:14;28495:38;28548:103;28646:4;28632:12;28548:103;:::i;:::-;28540:111;;;;28740:4;28733:5;28729:16;28723:23;28792:3;28786:4;28782:14;28740:4;28770:3;28766:14;28759:38;28812:71;28878:4;28864:12;28812:71;:::i;:::-;28804:79;;;28981:4;28974:5;28970:16;28964:23;28993:57;28981:4;29039:3;29035:14;29021:12;28993:57;:::i;:::-;-1:-1;29066:11;28080:1002;-1:-1;;;28080:1002::o;36437:222::-;-1:-1;;;;;59516:54;;;;16036:45;;36564:2;36549:18;;36535:124::o;36911:460::-;-1:-1;;;;;59516:54;;;15879:58;;59516:54;;;;37274:2;37259:18;;16036:45;37357:2;37342:18;;22063:37;;;;37102:2;37087:18;;37073:298::o;37378:1160::-;;37755:3;6477:18;;59527:42;;;;58764:5;59516:54;15886:3;15879:58;22093:5;37928:2;37917:9;37913:18;22063:37;59527:42;58764:5;59516:54;38011:2;38000:9;37996:18;16036:45;;22093:5;38094:2;38083:9;38079:18;22063:37;22093:5;38177:3;38166:9;38162:19;22063:37;22093:5;38261:3;38250:9;38246:19;22063:37;60560:24;38371:3;38360:9;38356:19;23126:76;37755:3;38409;38398:9;38394:19;38387:49;38450:78;37755:3;37744:9;37740:19;38514:6;38450:78;:::i;:::-;38442:86;37726:812;-1:-1;;;;;;;;;;;37726:812::o;38545:780::-;-1:-1;;;;;59516:54;;;16036:45;;59516:54;;;38977:2;38962:18;;16036:45;59516:54;;;39060:2;39045:18;;16036:45;39143:2;39128:18;;22063:37;;;;59516:54;;;39226:3;39211:19;;16036:45;59527:42;39295:19;;22063:37;;;;38812:3;38797:19;;38783:542::o;39332:780::-;-1:-1;;;;;59516:54;;;16036:45;;59516:54;;;39764:2;39749:18;;16036:45;59516:54;;;;39847:2;39832:18;;16036:45;39930:2;39915:18;;22063:37;40013:3;39998:19;;22063:37;;;;59527:42;40082:19;;22063:37;;;;39599:3;39584:19;;39570:542::o;40570:780::-;-1:-1;;;;;59516:54;;;16036:45;;59516:54;;;41002:2;40987:18;;16036:45;41085:2;41070:18;;22063:37;;;;59516:54;;41168:2;41153:18;;16036:45;41251:3;41236:19;;22063:37;;;;59527:42;41320:19;;22063:37;;;;40837:3;40822:19;;40808:542::o;41357:333::-;-1:-1;;;;;59516:54;;;;16036:45;;41676:2;41661:18;;22063:37;41512:2;41497:18;;41483:207::o;41697:454::-;41916:2;41930:47;;;55392:12;;41901:18;;;57119:19;;;41697:454;;41916:2;57159:14;;;;;;54522;;;41697:454;17689:323;17714:6;17711:1;17708:13;17689:323;;;17775:13;;32723:23;;-1:-1;;;;;59516:54;16036:45;;32891:16;;;32885:23;32914:63;32962:14;;;32885:23;32914:63;:::i;:::-;-1:-1;33053:16;;;33047:23;33124:14;;;22063:37;33224:4;33213:16;;;33207:23;33284:14;;;22063:37;33380:4;33369:16;;;33363:23;33440:14;;;22063:37;15051:4;15042:14;;;;56447;;;;17736:1;17729:9;17689:323;;;-1:-1;41983:158;;41887:264;-1:-1;;;;;;;41887:264::o;42158:498::-;42399:2;42413:47;;;55392:12;;42384:18;;;57119:19;;;42158:498;;42399:2;57159:14;;;;;;18604:17;;;18595:27;;;;54522:14;;;42158:498;18764:426;18789:6;18786:1;18783:13;18764:426;;;18841:20;;42388:9;18845:4;18841:20;;18836:3;18829:33;18896:6;18890:13;33715:4;33814:63;33862:14;33791:16;33785:23;33814:63;:::i;:::-;42399:2;33950:5;33946:16;33940:23;33969:63;42399:2;34021:3;34017:14;34003:12;33969:63;:::i;:::-;;57159:14;34104:5;34100:16;34094:23;33715:4;57159:14;34141:3;34137:14;34130:38;34183:73;33715:4;33710:3;33706:14;34237:12;34183:73;:::i;:::-;34343:4;34332:16;;;34326:23;34403:14;;;22063:37;34499:4;34488:16;;;34482:23;34559:14;;;;22063:37;;;;-1:-1;;19169:14;;;;56447;;;;18811:1;18804:9;18764:426;;;-1:-1;42466:180;;42370:286;-1:-1;;;;;;;;42370:286::o;42663:466::-;42888:2;42902:47;;;55392:12;;42873:18;;;57119:19;;;42663:466;;42888:2;57159:14;;;;;;19751:17;;;19742:27;;;;54522:14;;;42663:466;19903:402;19928:6;19925:1;19922:13;19903:402;;;18841:20;;42877:9;19984:4;19980:20;;19975:3;19968:33;20035:6;20029:13;34813:6;34911:63;34959:14;34888:16;34882:23;34911:63;:::i;:::-;42888:2;35049:5;35045:16;35039:23;35068:63;42888:2;35120:3;35116:14;35102:12;35068:63;:::i;:::-;-1:-1;35208:16;;;35202:23;35279:14;;;22063:37;35382:4;35371:16;;;35365:23;35442:14;;;22063:37;35535:4;35524:16;;;35518:23;35595:14;;;22063:37;35689:4;35678:16;;;35672:23;35749:14;;;22063:37;35855:4;35844:16;;;35838:23;35915:14;;;22063:37;36017:4;36006:16;;;36000:23;36043:14;;;36036:38;;;36089:73;34804:16;;;36000:23;36089:73;:::i;:::-;20284:14;;;;20049:120;-1:-1;;;56447:14;;;;19950:1;19943:9;19903:402;;43136:222;22063:37;;;43263:2;43248:18;;43234:124::o;43365:768::-;22063:37;;;-1:-1;;;;;59516:54;;;43823:2;43808:18;;16036:45;59516:54;;43922:2;43907:18;;16036:45;43658:3;43959:2;43944:18;;43937:48;;;43365:768;;43999:124;;43643:19;;44109:6;43999:124;:::i;:::-;43991:132;43629:504;-1:-1;;;;;;43629:504::o;44883:880::-;22063:37;;;-1:-1;;;;;59516:54;;;45337:2;45322:18;;16036:45;59516:54;;;;45420:2;45405:18;;16036:45;45503:2;45488:18;;22063:37;;;;45586:3;45571:19;;22063:37;59527:42;45655:19;;22063:37;;;;58954:13;58947:21;45748:3;45733:19;;21845:34;45172:3;45157:19;;45143:620::o;45770:357::-;45937:2;45922:18;;61458:1;61448:12;;61438:2;;61464:9;61438:2;22798:62;;;46113:2;46098:18;22063:37;45908:219;:::o;46134:505::-;;61570:1;61563:5;61560:12;61550:2;;61576:9;61550:2;60405:38;22962:3;22955:62;46351:2;46481;46470:9;46466:18;46459:48;46521:108;46351:2;46340:9;46336:18;46615:6;46521:108;:::i;46646:416::-;46846:2;46860:47;;;24127:2;46831:18;;;57119:19;24163:33;57159:14;;;24143:54;24216:12;;;46817:245::o;47069:416::-;47269:2;47283:47;;;24467:2;47254:18;;;57119:19;24503:30;57159:14;;;24483:51;24553:12;;;47240:245::o;47492:416::-;47692:2;47706:47;;;24804:2;47677:18;;;57119:19;-1:-1;;;57159:14;;;24820:41;24880:12;;;47663:245::o;47915:416::-;48115:2;48129:47;;;25131:2;48100:18;;;57119:19;25167:25;57159:14;;;25147:46;25212:12;;;48086:245::o;48338:416::-;48538:2;48552:47;;;25463:2;48523:18;;;57119:19;-1:-1;;;57159:14;;;25479:36;25534:12;;;48509:245::o;48761:416::-;48961:2;48975:47;;;25785:2;48946:18;;;57119:19;25821:29;57159:14;;;25801:50;25870:12;;;48932:245::o;49184:416::-;49384:2;49398:47;;;26121:2;49369:18;;;57119:19;26157:29;57159:14;;;26137:50;26206:12;;;49355:245::o;49607:416::-;49807:2;49821:47;;;26457:2;49792:18;;;57119:19;-1:-1;;;57159:14;;;26473:41;26533:12;;;49778:245::o;50030:416::-;50230:2;50244:47;;;26784:2;50215:18;;;57119:19;-1:-1;;;57159:14;;;26800:42;26861:12;;;50201:245::o;50453:416::-;50653:2;50667:47;;;27112:2;50638:18;;;57119:19;27148:28;57159:14;;;27128:49;27196:12;;;50624:245::o;50876:416::-;51076:2;51090:47;;;27447:2;51061:18;;;57119:19;-1:-1;;;57159:14;;;27463:42;27524:12;;;51047:245::o;51299:416::-;51499:2;51513:47;;;27775:2;51484:18;;;57119:19;-1:-1;;;57159:14;;;27791:35;27845:12;;;51470:245::o;51722:414::-;;51921:2;51942:17;51935:47;29445:16;29439:23;29371:6;;51921:2;51910:9;51906:18;29475:38;29528:73;29362:16;51910:9;29362:16;29582:12;29528:73;:::i;:::-;29520:81;;51921:2;29681:5;29677:16;29671:23;61354:7;;29730:14;51910:9;29734:4;29730:14;;29714;51910:9;29714:14;29707:38;29760:73;29828:4;29814:12;29760:73;:::i;:::-;29752:81;;29714:14;29915:5;29911:16;29905:23;29885:43;;29934:63;29982:14;51910:9;29982:14;29968:12;29934:63;:::i;:::-;29982:14;30073:5;30069:16;30063:23;30043:43;;30092:63;30140:14;51910:9;30140:14;30126:12;30092:63;:::i;:::-;30140:14;30235:5;30231:16;30225:23;30302:14;51910:9;30302:14;22063:37;30302:14;30401:5;30397:16;30391:23;30468:14;51910:9;30468:14;22063:37;30468:14;30563:5;30559:16;30553:23;30630:14;51910:9;30630:14;22063:37;30630:14;30730:5;30726:16;30720:23;;;30797:14;30720:23;30797:14;51910:9;30797:14;22063:37;30797:14;30890:5;30886:18;30880:25;;;;30959:16;30880:25;30959:16;51910:9;30959:16;22063:37;30959:16;31056:5;31052:18;31046:25;31026:45;;;29730:14;51910:9;31113:4;31109:14;;29371:6;51910:9;31091:16;31084:40;;31139:73;31207:4;31193:12;31139:73;:::i;52372:444::-;22063:37;;;-1:-1;;;;;59516:54;;;52719:2;52704:18;;16036:45;59516:54;52802:2;52787:18;;16036:45;52555:2;52540:18;;52526:290::o;52823:333::-;22063:37;;;53142:2;53127:18;;22063:37;52978:2;52963:18;;52949:207::o;53163:256::-;53225:2;53219:9;53251:17;;;53326:18;53311:34;;53347:22;;;53308:62;53305:2;;;53383:1;;53373:12;53305:2;53225;53392:22;53203:216;;-1:-1;53203:216::o;53426:319::-;;53600:18;53592:6;53589:30;53586:2;;;-1:-1;;53622:12;53586:2;-1:-1;53667:4;53655:17;;;53720:15;;53523:222::o;54063:322::-;;54207:18;54199:6;54196:30;54193:2;;;-1:-1;;54229:12;54193:2;-1:-1;61354:7;54283:17;-1:-1;;54279:33;54370:4;54360:15;;54130:255::o;60994:268::-;61059:1;61066:101;61080:6;61077:1;61074:13;61066:101;;;61147:11;;;61141:18;61128:11;;;61121:39;61102:2;61095:10;61066:101;;;61182:6;61179:1;61176:13;61173:2;;;-1:-1;;61059:1;61229:16;;61222:27;61043:219::o;61599:117::-;-1:-1;;;;;59516:54;;61658:35;;61648:2;;61707:1;;61697:12;61723:111;61804:5;58954:13;58947:21;61782:5;61779:32;61769:2;;61825:1;;61815:12",
    "source": "// Verified asset manager\r\n// (c) Kallol Borah, Verified Network, 2021\r\n\r\n//\"SPDX-License-Identifier: UNLICENSED\"\r\n\r\npragma solidity ^0.7.1;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol\";\r\nimport \"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol\";\r\nimport \"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol\";\r\nimport \"@balancer-labs/v2-solidity-utils/contracts/math/Math.sol\";\r\nimport \"@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol\";\r\n\r\nimport \"@balancer-labs/v2-vault/contracts/interfaces/IVault.sol\";\r\nimport \"@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol\";\r\n\r\nimport \"./interfaces/IPrimaryIssuePoolFactory.sol\";\r\nimport \"./interfaces/IPrimaryIssuePool.sol\";\r\n\r\nimport \"./interfaces/VerifiedClient.sol\";\r\nimport \"./interfaces/IMarketMaker.sol\";\r\nimport \"./interfaces/ILiquidity.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/ISecurity.sol\";\r\nimport \"./interfaces/IDistribution.sol\";\r\n\r\ncontract PrimaryIssueManager is IMarketMaker, Ownable {\r\n\r\n    using Math for uint256;\r\n    using FixedPoint for uint256;\r\n\r\n    // balancer variables\r\n    address private factory;\r\n    address private vault;\r\n    uint256 private swapFeePercentage=0;\r\n\r\n    uint256 private constant _INITIAL_BPT_SUPPLY = 2**(112) - 1;\r\n    uint256 private constant _DEFAULT_MINIMUM_BPT = 1e6;\r\n\r\n    // reference to the Verified factory contract that this asset manager checks security token issues with\r\n    IFactory private products;\r\n\r\n    // reference to the Verified Client contract\r\n    VerifiedClient private client;\r\n\r\n    // reference to the Verified Liquidity contract that provides liquidity (ie, VITTA) to the asset manager to underwrite investments in tokenized securities\r\n    address private LiquidityContract;\r\n\r\n    //distribution contract \r\n    address private distribution;\r\n\r\n    //mutex\r\n    bool private lock;\r\n\r\n    // modifiers\r\n    modifier onlyPool(bytes32 poolId, address caller) {\r\n        require(caller == pools[poolId], \"Invalid pool\");\r\n        _;\r\n    }\r\n\r\n    modifier onlyLP(address sender) {\r\n        require(sender==LiquidityContract, \"Only Liquidity contract\");\r\n        _;\r\n    }\r\n\r\n    modifier onlyAssetManager(address sender){\r\n        (bytes32 role, , ) = client.getRole(sender);\r\n        require(role==\"AM\" || role==\"DP\", \"Only Asset manager\");\r\n        _;\r\n    }   \r\n\r\n    modifier onlyDP(address sender){\r\n        (bytes32 role, , ) = client.getRole(sender);\r\n        require(role==\"DP\", \"Only Depositary participant\");\r\n        _;\r\n    } \r\n\r\n    modifier onlyIssueManager(address sender, address security){\r\n        address DP = products.getDP(security);\r\n        require(DP==sender, \"Only Issue manager\");\r\n        _;\r\n    }\r\n\r\n    // list of offered tokens\r\n    address[] internal offeredTokens;\r\n\r\n    // mapping token offered to its position in the list of offered tokens\r\n    mapping(address => uint256) private offeredTokenIndex;\r\n\r\n    // list of tokens to match\r\n    mapping(address => token[]) internal toMatchTokens;\r\n\r\n    // mapping offered token (eg, security token) to a token to match (eg, settlement token)\r\n    mapping(address => mapping(address => token[])) internal mmtokens;\r\n\r\n    // mapping offered token (ie security token) to its paired token \r\n    mapping(address => address[]) internal pairedTokens;\r\n\r\n    // mapping liqudity token to its position in the list of liquidity tokens\r\n    mapping(address => mapping(address => uint256)) private pairedTokenIndex;    \r\n\r\n    // mapping qualified liquidity token to its price and amount offered by market makers (LPs)\r\n    mapping(address => mapping(address => liquidity)) internal qlTokens;\r\n\r\n    // mapping security to liquidity providers\r\n    mapping(address => lp[]) private liquidityProviders;\r\n\r\n    // mapping securities issued in the primary issue pool to total liquidity offered\r\n    mapping(address => uint256) private totalUnderwritten;\r\n\r\n    // mapping pool ids to LPs to the amounts of liquidity they offer\r\n    mapping(bytes32 => mapping(address => uint256)) private underwriters;    \r\n\r\n    // mapping security to new issues in the primary issue pool\r\n    mapping(address => primary) internal issues;\r\n\r\n    // mapping primary issue pool id to subscribers that swap in assets into pool\r\n    mapping(bytes32 => subscriptions[]) internal investors; \r\n\r\n    // mapping primary issue pool id to subscriber and its position in the list of subscribers to the pool\r\n    mapping(bytes32 => mapping(address => uint256)) private subscriberIndex;\r\n\r\n    // mapping pool id to asset to subscription amounts\r\n    mapping(bytes32 => mapping(address => uint256)) private subscribed;\r\n\r\n    // mapping pool id to pool address\r\n    mapping(bytes32 => address) private pools;\r\n\r\n    // mapping pool id to security token offered\r\n    mapping(bytes32 => address) private poolSecurity;   \r\n    \r\n    // LP token allotted\r\n    mapping(address => mapping (address => uint256)) private LPTokenAllotted;\r\n\r\n    // mapping token address to issuing fee collected\r\n    mapping(address => uint256) private fees;\r\n    \r\n    // mapping security to currency to fee set for it by DP\r\n    mapping(address => mapping(address => uint256)) private customFee;\r\n    \r\n    // revenue share for asset managers\r\n    uint256 private revshare;\r\n\r\n    event marketmakers(address indexed security, address platform, address provider, address currency, uint256 tokenOffered, uint256 underwritten, uint256 earnings);\r\n    event subscribers(address indexed security, bytes32 poolId, address investor, address currency, uint256 cashSwapped, uint256 securitySwapped, uint256 timestamp, bool subscription);\r\n    event offers(address party, address indexed offered, uint256 amountOffered, address tomatch, uint256 amountDesired, uint256 minAmount, bytes32 isin, uint256 minimumOrderSize, string offeringDocs);\r\n    event closures(bytes32 indexed poolId, address security, uint256 timestamp);\r\n    event allotments(bytes32 indexed poolId, address investor, address security, uint256 securitySubscription, address currency, uint256 allotedAmount, uint256 timestamp);\r\n    event refunds(bytes32 indexed poolId, address investor, address security, uint256 securitySubscription, address currency, uint256 refundAmount, uint256 timestamp);\r\n    event settlements(bytes32 indexed poolId, address security, address currency, address liquidityProvider, uint256 underwritingFee, address issuer, uint256 subscription);\r\n    event feecollection(address indexed platform, uint256 collection, uint256 timestamp);\r\n\r\n    /**\r\n        Initializes this asset management contract\r\n        @param  _factory            reference to the primary issue pool factory contract\r\n        @param  _swapFeePercentage  percentage of trading fee to be charged by the asset manager\r\n        @param  _vault              reference to the Balancer vault\r\n        @param  _products           reference to the Verified Products contract that this contract reports created primary issue pools to\r\n     */\r\n    function initialize(address _factory, uint256 _swapFeePercentage, address _vault, address _products, address _liquidity, address _client, address _distribution) public onlyOwner {\r\n        factory = _factory;\r\n        vault = _vault;        \r\n        products = IFactory(_products);        \r\n        client = VerifiedClient(_client);\r\n        swapFeePercentage = _swapFeePercentage;\r\n        LiquidityContract = _liquidity;\r\n        distribution = _distribution;\r\n    }\r\n\r\n    function setFee(uint256 _fee) public onlyOwner {\r\n        swapFeePercentage = _fee;\r\n    }\r\n\r\n    /**\r\n        Called by market maker and issuer for adding liquidity\r\n        @param  owned       is the security or settlement token on offer \r\n        @param  offered     is the amount offered\r\n        @param  tomatch     is the liquidity token that is required to be paired\r\n        @param  desired     is the amount required of the liquidity token to be paired\r\n        @param  min         is the minimum amount to be swapped of the 'offered' token \r\n        @param  isin        is the identifier for the security token offered\r\n        @param  owner       is the current holder of the owned token that is offered\r\n        @param  docs        is the ipfs address of the offering docs\r\n     */ \r\n    function offer(address owned, bytes32 isin, uint offered, address tomatch, uint desired, uint min, address owner, string memory docs) override external {\r\n        require(!lock, \"Access locked\");\r\n        lock = true;\r\n        (bytes32 role, , ) = client.getRole(msg.sender);\r\n        require(products.checkProduct(owned)==true || role==\"AM\", \"Unauthorized access\");\r\n        if(role==\"AM\"){\r\n            if(ERC20(owned).balanceOf(address(this))>=LPTokenAllotted[msg.sender][owned] && LPTokenAllotted[msg.sender][owned]>=offered){                 \r\n                LPTokenAllotted[msg.sender][owned] = SafeMath.sub(LPTokenAllotted[msg.sender][owned], offered);\r\n                make(msg.sender, owned, isin, offered, tomatch, desired, min, docs); \r\n            }\r\n            else if(ERC20(owned).balanceOf(msg.sender)>=offered){\r\n                ERC20(owned).transferFrom(msg.sender, address(this), offered);\r\n                make(msg.sender, owned, isin, offered, tomatch, desired, min, docs);\r\n            }\r\n            emit offers(msg.sender, owned, offered, tomatch, desired, min, isin, 1e18, docs);\r\n        }\r\n        else if(ERC20(owned).balanceOf(owner)>=offered){             \r\n            ERC20(owned).transferFrom(owner, address(this), offered);\r\n            make(owner, owned, isin, offered, tomatch, desired, min, docs); \r\n        }\r\n        lock = false;\r\n    }\r\n\r\n    function make(address _owner, address owned, bytes32 _isin, uint _offered, address tomatch, uint _desired, uint _min, string memory _docs) private {\r\n        IMarketMaker.token memory t = IMarketMaker.token({\r\n            owner: _owner,\r\n            offered: owned,\r\n            amountDesired: _desired,\r\n            amountOffered: _offered,\r\n            min: _min,\r\n            isin: _isin,\r\n            minimumOrderSize: 1e18,\r\n            offeringdocs: _docs\r\n        });\r\n        uint256 index = mmtokens[owned][tomatch].length;\r\n        mmtokens[owned][tomatch].push(t);        \r\n        if(offeredTokenIndex[owned]==0){            \r\n            offeredTokens.push(owned);\r\n            offeredTokenIndex[owned] = offeredTokens.length;\r\n        }\r\n        toMatchTokens[tomatch].push(mmtokens[owned][tomatch][index]);                      \r\n    }\r\n\r\n    function setOfferTerms(address owner, address owned, address tomatch, uint256 minOrderSize) override external onlyIssueManager(msg.sender, owned) {\r\n        IMarketMaker.token storage t = mmtokens[owned][tomatch][0];\r\n        if(t.owner==owner){\r\n            t.minimumOrderSize = _upscale(minOrderSize, _computeScalingFactor(IERC20(owned)));\r\n        }\r\n    }\r\n\r\n    function setIssuingFee(address owner, address owned, address tomatch, uint256 swapfee) override external onlyDP(msg.sender){\r\n        IMarketMaker.token storage t = mmtokens[owned][tomatch][0];\r\n        if(t.owner==owner){\r\n            customFee[owned][tomatch]=swapfee;\r\n        }\r\n    }\r\n\r\n    function getIssuingFee(address security, address currency) override external view returns(uint256){\r\n        return customFee[security][currency];\r\n    }\r\n\r\n    /**\r\n        Gets tokens to match for offered token\r\n        @param  offered address of offered token\r\n     */\r\n    function getOffered(address offered) override external view onlyAssetManager(msg.sender) returns(IMarketMaker.token[] memory){\r\n        return toMatchTokens[offered];\r\n    }\r\n\r\n    /**\r\n        Gets offer made previously\r\n        @param  _owned      address of token offered\r\n        @param  _tomatch    address of token to match\r\n     */\r\n    function getOfferMade(address _owned, address _tomatch) override external view onlyAssetManager(msg.sender) returns(IMarketMaker.token[] memory){\r\n        return mmtokens[_owned][_tomatch];\r\n    }\r\n\r\n    /**\r\n        Fetches liquidity providers for a security token\r\n        @param  _security   identifier for the security token offered\r\n     */\r\n    function getLiquidityProviders(address _security) override external view returns(lp[] memory){        \r\n        return liquidityProviders[_security];\r\n    }\r\n\r\n    /**\r\n        Called by Liquidity token contract to stake tokens by investors\r\n        @param  _amount     amount of tokens staked to provide liquidity for underwriting investments in tokenized securities\r\n        @param  _token      address of token staked\r\n        @param  _manager    address of asset manager\r\n     */\r\n    function stake(uint256 _amount, address _token, address _manager) override external onlyLP(msg.sender) {\r\n        LPTokenAllotted[_manager][_token] = SafeMath.add(LPTokenAllotted[_manager][_token], _amount);\r\n    }\r\n\r\n    /**\r\n        Gets liquidity allotted for asset manager (message sender)\r\n        @param  _token  address of token allocated earlier to asset manager (message sender)\r\n     */\r\n    function getAllotedStake(address _token) override external view returns(uint256){\r\n        return LPTokenAllotted[msg.sender][_token];\r\n    }    \r\n    \r\n    /**\r\n        Called by issuer of 'security' token to open an issue which will last till 'cutoffTime'\r\n        @param  security    security offered to the primary issue pool\r\n        @param  cutoffTime  time in milliseconds by when offer closes\r\n     */\r\n    function issue(address security, uint256 cutoffTime, address issuer) override external onlyDP(msg.sender) {\r\n        onIssue(security, cutoffTime, issuer);\r\n    }\r\n    \r\n    function onIssue(address security, uint256 cutoffTime, address issuer) private {\r\n        // check if security to be issued has been offered by the issuer, and if yes, initialize the issuance\r\n        \r\n        address marketmaker;\r\n        uint256 matchedTokens;\r\n        address cash;\r\n        uint256 securityOffered;\r\n        uint256 minCashDesired;\r\n        uint256 cashOffered;\r\n\r\n        if(offeredTokens[offeredTokenIndex[security]-1]==security){            \r\n            // check all offered securities that is not the security to be issued\r\n            for(uint j=0; j<offeredTokens.length; j++){\r\n                \r\n                if(offeredTokens[j]!=security){                    \r\n                    cash = offeredTokens[j];                     \r\n                    \r\n                    // check if the request to issue has come from the issuer\r\n                    //if(mmtokens[security][cash][0].owner==issuer && mmtokens[security][cash][0].amountOffered>0){\r\n                        \r\n                        matchedTokens = mmtokens[cash][security].length;\r\n                        for(uint k=0; k<matchedTokens; k++){\r\n\r\n                            securityOffered = mmtokens[security][cash][0].amountOffered;\r\n                            minCashDesired = mmtokens[security][cash][0].min;\r\n                            cashOffered = mmtokens[cash][security][k].amountOffered;\r\n                            marketmaker = mmtokens[cash][security][k].owner;\r\n                            \r\n                            // find tokens offered against security to be issued\r\n                            if(cashOffered!=0){\r\n                                \r\n                                // if min offer price for security issued is less than price desired by market maker (LP)\r\n                                if( Math.div(minCashDesired,\r\n                                    securityOffered, true) <=\r\n                                    Math.div(cashOffered,\r\n                                    mmtokens[cash][security][k].amountDesired, true))\r\n                                {   \r\n                                    // store liquidity tokens    \r\n                                    if(pairedTokenIndex[security][cash]==0){\r\n                                        pairedTokens[security].push(cash);\r\n                                        pairedTokenIndex[security][cash] = pairedTokens[security].length;                                            \r\n                                    }\r\n                                    \r\n                                    // find and store min price for token offered\r\n                                    if(Math.div(minCashDesired,\r\n                                        securityOffered, true) < \r\n                                        qlTokens[security][cash].minPrice  || \r\n                                        qlTokens[security][cash].minPrice==0)\r\n                                    {   \r\n                                        qlTokens[security][cash].minPrice =\r\n                                            FixedPoint.divDown(_upscale(minCashDesired, _computeScalingFactor(IERC20(cash))),\r\n                                                    _upscale(securityOffered, _computeScalingFactor(IERC20(security))));\r\n                                    }                                    \r\n                                     \r\n                                    qlTokens[security][cash].amountIssued = \r\n                                                    //Math.add(qlTokens[security][cash].amountIssued,\r\n                                                    securityOffered;\r\n                                                    //);\r\n                                    qlTokens[security][cash].amountOffered = \r\n                                                    Math.add(qlTokens[security][cash].amountOffered,\r\n                                                    cashOffered); \r\n                                    \r\n                                    // store qualified liquidity provider info\r\n                                    lp memory provider = lp({\r\n                                        owner : marketmaker,\r\n                                        tokenOffered : cash,\r\n                                        underwritten : cashOffered,\r\n                                        subscribed : 0,\r\n                                        earned : 0\r\n                                    });\r\n                                    liquidityProviders[security].push(provider);  \r\n                                    emit marketmakers(security, address(this), marketmaker, cash, cashOffered, provider.subscribed, provider.earned);\r\n\r\n                                    totalUnderwritten[security] = \r\n                                        SafeMath.add(totalUnderwritten[security], cashOffered);\r\n                                    cashOffered = 0;\r\n                                }\r\n                                else{\r\n                                    //adjust amount underwritten from asset manager's allocated stake                                            \r\n                                    LPTokenAllotted[marketmaker][cash] = \r\n                                        SafeMath.add(LPTokenAllotted[marketmaker][cash], cashOffered);\r\n                                }\r\n                            }\r\n                        }\r\n                    //}\r\n                }\r\n            }\r\n            if(pairedTokens[security].length >0){\r\n                createPool(security, cutoffTime);\r\n                delete pairedTokens[security];\r\n            }\r\n        }\r\n    }\r\n    \r\n    function createPool(address security, uint256 cutoffTime) internal {\r\n        uint256 matchedTokens = pairedTokens[security].length;\r\n        //create primary issue pool if it does not exist already\r\n        for(uint x=0; x<matchedTokens; x++){\r\n            address lptoken = pairedTokens[security][x];\r\n            uint256 securityAmount = qlTokens[security][lptoken].amountIssued;\r\n            uint256 cashAmount = qlTokens[security][lptoken].amountOffered;            \r\n            IPrimaryIssuePoolFactory.FactoryPoolParams memory poolparams = IPrimaryIssuePoolFactory.FactoryPoolParams({\r\n                name : \"Verified Pool Token\",\r\n                symbol : \"VPT\",\r\n                security : security,\r\n                currency : lptoken,\r\n                minimumPrice: qlTokens[security][lptoken].minPrice,\r\n                minimumOrderSize : mmtokens[security][lptoken][0].minimumOrderSize,\r\n                maxAmountsIn : securityAmount,\r\n                swapFeePercentage : swapFeePercentage,\r\n                cutOffTime : cutoffTime,\r\n                offeringDocs: mmtokens[security][lptoken][0].offeringdocs\r\n            });                \r\n            ISecurity(security).whiteList(vault, securityAmount); \r\n            address newIssue = IPrimaryIssuePoolFactory(factory).create(poolparams);  \r\n            // store details of new pool created\r\n            issues[security].issuer = mmtokens[security][lptoken][0].owner;\r\n            issues[security].deadline = cutoffTime;\r\n            bytes32 pool = IPrimaryIssuePool(newIssue).getPoolId();                \r\n            issues[security].pools.push(pool);\r\n            pools[pool] = newIssue;\r\n            poolSecurity[pool] = security;\r\n            // join the pool here   \r\n            joinPool(pool, security, lptoken, securityAmount, cashAmount);\r\n            delete qlTokens[security][lptoken];\r\n            pairedTokenIndex[security][lptoken]=0;\r\n        }\r\n    }\r\n    \r\n    function joinPool(bytes32 pool, address security, address lptoken, uint256 securityAmount, uint256 cashAmount) private {\r\n        (IERC20[] memory tokens, , ) = IVault(vault).getPoolTokens(pool);\r\n        IAsset[] memory assets = _convertERC20sToAssets(tokens);\r\n        uint256[] memory maxAmountsIn = new uint256[](tokens.length);                \r\n        ERC20(lptoken).approve(vault, cashAmount);\r\n        ERC20(security).approve(vault, securityAmount);\r\n        for(uint256 t; t < tokens.length; t++) {\r\n            if(tokens[t]==IERC20(security))\r\n                maxAmountsIn[t] = securityAmount;\r\n            else if(tokens[t]==IERC20(lptoken))\r\n                maxAmountsIn[t] = cashAmount;\r\n            //else \r\n            //    maxAmountsIn[t] = Math.sub(_INITIAL_BPT_SUPPLY, _DEFAULT_MINIMUM_BPT);\r\n        }\r\n        IVault.JoinPoolRequest memory request = IVault.JoinPoolRequest({\r\n            assets: assets,\r\n            maxAmountsIn: maxAmountsIn,\r\n            userData: abi.encode(JoinKind.INIT, maxAmountsIn),\r\n            fromInternalBalance: false\r\n        });         \r\n        IVault(vault).joinPool(pool, address(this), address(this), request);\r\n    }\r\n\r\n    // called by pool when assets are swapped in by investors against security tokens issued\r\n    function subscribe(bytes32 poolId, address security, address asset, uint256 cAmount, address investor, uint256 sAmount, bool paidIn) override external onlyPool(poolId, msg.sender) {\r\n        uint256 index = subscriberIndex[poolId][investor];\r\n        uint256 amount = _downscaleDown(cAmount, _computeScalingFactor(IERC20(asset)));\r\n        emit subscribers(poolSecurity[poolId], poolId, investor, asset, amount, sAmount, block.timestamp, paidIn);\r\n        if(paidIn){\r\n            subscribed[poolId][asset] = Math.add(subscribed[poolId][asset], amount);\r\n            if(index==0){\r\n                IMarketMaker.subscriptions memory subscription = IMarketMaker.subscriptions({\r\n                    investor: investor,\r\n                    asset: asset,\r\n                    name: ERC20(asset).name(),\r\n                    amount: amount,\r\n                    traded: _downscaleDown(sAmount, _computeScalingFactor(IERC20(security)))\r\n                });\r\n                investors[poolId].push(subscription);   \r\n                subscriberIndex[poolId][investor] = investors[poolId].length; \r\n            }\r\n            else{\r\n                IMarketMaker.subscriptions storage subscription = investors[poolId][index-1];\r\n                if(subscription.investor==investor){\r\n                    subscription.amount = Math.add(subscription.amount, amount);\r\n                    subscription.traded = Math.add(subscription.traded, _downscaleDown(sAmount, _computeScalingFactor(IERC20(security))));\r\n                }\r\n            }        \r\n        }\r\n        else{\r\n            if(index > 0){\r\n                IMarketMaker.subscriptions storage subscription = investors[poolId][index-1];\r\n                if(subscription.investor==investor){\r\n                    subscription.amount = Math.sub(subscription.amount, amount);\r\n                    subscription.traded = Math.sub(subscription.traded, _downscaleDown(sAmount, _computeScalingFactor(IERC20(security))));\r\n                }\r\n                if(subscribed[poolId][asset] >= amount)\r\n                    subscribed[poolId][asset] = Math.sub(subscribed[poolId][asset], amount);\r\n            }\r\n        }\r\n    }\r\n\r\n    /**\r\n        Fetches investors (subscribers) to a primary issue pool\r\n        @param   poolId identifier for a primary issue pool for which subscribers are to be returned\r\n     */\r\n    function getSubscribers(bytes32 poolId) override external view onlyIssueManager(msg.sender, poolSecurity[poolId]) returns(IMarketMaker.subscriptions[] memory){\r\n        return investors[poolId];\r\n    }\r\n\r\n    /**\r\n        Called by issuer to close subscription of 'security' issued by it\r\n        @param  security    address of security token\r\n     */  \r\n    function close(address security) override external onlyIssueManager(msg.sender, security) {\r\n        address currency;\r\n        bytes32 poolId;\r\n        uint256 length = issues[security].pools.length;\r\n        for(uint256 i=0; i<length; i++){  \r\n            poolId = issues[security].pools[i];\r\n            currency = IPrimaryIssuePool(pools[poolId]).getCurrency(); \r\n            // exit the pool here   \r\n            (IERC20[] memory tokens, , ) = IVault(vault).getPoolTokens(poolId);\r\n            IAsset[] memory assets = _convertERC20sToAssets(tokens);\r\n            uint256[] memory amountsOut = new uint256[](tokens.length);\r\n            IVault.ExitPoolRequest memory request = IVault.ExitPoolRequest({\r\n                assets: assets,\r\n                minAmountsOut: amountsOut,\r\n                userData: abi.encode(ExitKind.EXACT_BPT_IN_FOR_TOKENS_OUT, _INITIAL_BPT_SUPPLY - _DEFAULT_MINIMUM_BPT),\r\n                toInternalBalance: false\r\n            });         \r\n            IVault(vault).exitPool(poolId, address(this), payable(address(this)), request);\r\n            emit closures(poolId, security, block.timestamp);\r\n            IERC20(security).transfer(issues[security].issuer, IERC20(security).balanceOf(address(this)));\r\n        }\r\n    }    \r\n\r\n    /**\r\n        Called by issuer to accept subscription to issue by investor\r\n        @param  poolid      identifier of primary issue pool in which subscription is made by investor\r\n        @param  investor    address of investor (subscriber)\r\n        @param  amnt        amount of investment (subscription capital) accepted by issuer for which allotment of security tokens are made to investor\r\n        @param  asset       address of asset which is used by investor to subscribe to the issue\r\n     */ \r\n    function accept(bytes32 poolid, address investor, uint256 amnt, address asset) override external onlyIssueManager(msg.sender, poolSecurity[poolid]) {\r\n        onAccept(poolid, investor, amnt, asset);\r\n    }\r\n        \r\n    function onAccept(bytes32 poolid, address investor, uint256 amnt, address asset) private {\r\n        uint256 i = subscriberIndex[poolid][investor];\r\n        require(i>0, \"No subscriber found\");\r\n        i = i-1;\r\n        require(investors[poolid][i].investor==investor, \"Invalid allotment subscriber\");\r\n        require(investors[poolid][i].amount >= amnt, \"Incorrect allotment amount\");\r\n        \r\n        uint256 prorataAllotment;\r\n        uint256 securitiesAlloted;\r\n        uint256 securityReturned;\r\n        uint256 cashRefund;\r\n        // transfer subscriptions for allotments to asset manager for asset subscribed with\r\n        address issued = IPrimaryIssuePool(pools[poolid]).getSecurity();\r\n        // refund balance to investors\r\n        prorataAllotment = FixedPoint.divDown(amnt, investors[poolid][i].amount);\r\n        investors[poolid][i].amount = Math.sub(investors[poolid][i].amount, amnt);\r\n        cashRefund = investors[poolid][i].amount;\r\n        securityReturned = Math.sub(investors[poolid][i].traded, FixedPoint.mulDown(investors[poolid][i].traded, prorataAllotment));\r\n        securitiesAlloted = Math.add(securitiesAlloted, FixedPoint.mulDown(investors[poolid][i].traded, prorataAllotment));          \r\n        subscribed[poolid][asset] = Math.sub(subscribed[poolid][asset], cashRefund);\r\n        emit refunds(poolid, investor, issued, securityReturned, asset, cashRefund, block.timestamp);                                \r\n        subscriberIndex[poolid][investor] = 0;\r\n        emit allotments(poolid, investor, issued, securitiesAlloted, asset, amnt, block.timestamp);\r\n\r\n        IERC20(issued).transferFrom(investor, mmtokens[issued][asset][0].owner, securityReturned);\r\n        IERC20(asset).transfer(investor, cashRefund);\r\n    }\r\n    \r\n    /**\r\n        Called by issuer to reject subscription to issue by investor\r\n        @param  poolid      identifier for primary issue pool to which investor has subscribed\r\n        @param  investor    address of investor (subscriber)\r\n     */ \r\n    function reject(bytes32 poolid, address investor) override external onlyIssueManager(msg.sender, poolSecurity[poolid]) {\r\n        uint256 i = subscriberIndex[poolid][investor];\r\n        require(i>0, \"No subscriber found\");\r\n        i = i-1;\r\n        require(investors[poolid][i].investor==investor, \"Incorrect subscriber for refund\");\r\n        \r\n        address issuedSecurity = poolSecurity[poolid];\r\n        address currencySubscribed = investors[poolid][i].asset;         \r\n        subscribed[poolid][currencySubscribed] = Math.sub(subscribed[poolid][currencySubscribed], investors[poolid][i].amount);\r\n        emit refunds(poolid, investor, issuedSecurity, investors[poolid][i].traded, currencySubscribed, investors[poolid][i].amount, block.timestamp);              \r\n        subscriberIndex[poolid][investor] = 0;    \r\n        IERC20(issuedSecurity).transferFrom(investor, mmtokens[issuedSecurity][currencySubscribed][0].owner, investors[poolid][i].traded);\r\n        IERC20(currencySubscribed).transfer(investor, investors[poolid][i].amount);                 \r\n    }    \r\n    \r\n    /**\r\n        Called by product issuer to settle distribution of fee income arising from investment underwritten in the primary issue pool\r\n        @param  poolId  identifier for primary issue pool\r\n     */  \r\n    function settle(bytes32 poolId) override external onlyIssueManager(msg.sender, poolSecurity[poolId]) {\r\n        (, , revshare,) = IDistribution(distribution).getRevenueShares();\r\n        onSettle(poolId);\r\n    }\r\n    \r\n    function onSettle(bytes32 poolId) private {        \r\n        address currency = IPrimaryIssuePool(pools[poolId]).getCurrency(); \r\n        address issuer = mmtokens[poolSecurity[poolId]][currency][0].owner;\r\n        uint256 subscription = _upscale(subscribed[poolId][currency], _computeScalingFactor(IERC20(currency)));\r\n        uint256 issuingFee = customFee[poolSecurity[poolId]][currency]==0 ? FixedPoint.mulDown(subscription, swapFeePercentage) \r\n                                                : FixedPoint.mulDown(subscription, customFee[poolSecurity[poolId]][currency]);\r\n        uint256 prorataLiquidityProvided =0;\r\n        uint256 underwritingFee = 0;        \r\n        for(uint i=0; i<liquidityProviders[poolSecurity[poolId]].length; i++){\r\n            prorataLiquidityProvided = FixedPoint.divDown(liquidityProviders[poolSecurity[poolId]][i].underwritten, totalUnderwritten[poolSecurity[poolId]]);\r\n            underwritingFee = FixedPoint.divDown(FixedPoint.mulDown(issuingFee, prorataLiquidityProvided), _computeScalingFactor(IERC20(currency)));\r\n            ILiquidity(LiquidityContract).distribute(underwritingFee, \r\n                                                    liquidityProviders[poolSecurity[poolId]][i].tokenOffered,\r\n                                                    liquidityProviders[poolSecurity[poolId]][i].owner);\r\n            IERC20(currency).transfer(liquidityProviders[poolSecurity[poolId]][i].owner, FixedPoint.mulDown(underwritingFee, revshare));\r\n            liquidityProviders[poolSecurity[poolId]][i].earned = Math.add(liquidityProviders[poolSecurity[poolId]][i].earned, underwritingFee);\r\n            prorataLiquidityProvided = FixedPoint.divDown(FixedPoint.mulDown(prorataLiquidityProvided, Math.sub(subscription, issuingFee)), _computeScalingFactor(IERC20(currency)));\r\n            SafeMath.add(liquidityProviders[poolSecurity[poolId]][i].subscribed, prorataLiquidityProvided);\r\n            emit settlements(poolId, poolSecurity[poolId], currency, liquidityProviders[poolSecurity[poolId]][i].owner, underwritingFee, issuer, prorataLiquidityProvided);\r\n        }\r\n        issuingFee = FixedPoint.divDown(issuingFee, _computeScalingFactor(IERC20(currency)));\r\n        fees[currency] = Math.add(fees[currency], FixedPoint.sub(issuingFee, FixedPoint.mulDown(issuingFee, revshare)));\r\n        IERC20(currency).transfer(issuer, Math.sub(subscribed[poolId][currency], issuingFee));\r\n        delete investors[poolId];                 \r\n    }   \r\n\r\n    function getIssuingFeeCollected(address _token) override external returns(uint256){\r\n        require(msg.sender==distribution, \"Unauthorized fee collection\");\r\n        uint256 feeCollected = fees[_token];        \r\n        fees[_token] = Math.sub(fees[_token], feeCollected);\r\n        IERC20(_token).transfer(distribution, feeCollected);\r\n        emit feecollection(address(this), feeCollected, block.timestamp);\r\n        return feeCollected;\r\n    }\r\n\r\n    function getOwner() override external view returns(address){\r\n        return owner();\r\n    }\r\n\r\n    /**\r\n     * @dev This helper function is a fast and cheap way to convert between IERC20[] and IAsset[] types\r\n     */\r\n    function _convertERC20sToAssets(IERC20[] memory tokens) internal pure returns (IAsset[] memory assets) {\r\n        // solhint-disable-next-line no-inline-assembly\r\n        assembly {\r\n            assets := tokens\r\n        }\r\n    }\r\n\r\n    /**\r\n     * @dev Returns a scaling factor that, when multiplied to a token amount for `token`, normalizes its balance as if\r\n     * it had 18 decimals.\r\n     */\r\n    function _computeScalingFactor(IERC20 token) internal view returns (uint256) {\r\n        // Tokens that don't implement the `decimals` method are not supported.\r\n        uint256 tokenDecimals = ERC20(address(token)).decimals();\r\n\r\n        // Tokens with more than 18 decimals are not supported.\r\n        uint256 decimalsDifference = Math.sub(18, tokenDecimals);\r\n        return FixedPoint.ONE * 10**decimalsDifference;\r\n    }\r\n\r\n    /**\r\n     * @dev Reverses the `scalingFactor` applied to `amount`, resulting in a smaller or equal value depending on\r\n     * whether it needed scaling or not. The result is rounded down.\r\n     */\r\n    function _downscaleDown(uint256 amount, uint256 scalingFactor) internal pure returns (uint256) {\r\n        return FixedPoint.divDown(amount, scalingFactor);\r\n    }\r\n\r\n    /**\r\n     * @dev Applies `scalingFactor` to `amount`, resulting in a larger or equal value depending on whether it needed\r\n     * scaling or not.\r\n     */\r\n    function _upscale(uint256 amount, uint256 scalingFactor) internal pure returns (uint256) {\r\n        // Upscale rounding wouldn't necessarily always go in the same direction: in a swap for example the balance of\r\n        // token in should be rounded up, and that of token out rounded down. This is the only place where we round in\r\n        // the same direction for all amounts, as the impact of this rounding is expected to be minimal (and there's no\r\n        // rounding error unless `_scalingFactor()` is overriden).\r\n        return FixedPoint.mulDown(amount, scalingFactor);\r\n    }\r\n\r\n}",
    "sourcePath": "D:\\Code\\verified-balancer\\contracts\\PrimaryIssueManager.sol",
    "ast": {
        "absolutePath": "project:/contracts/PrimaryIssueManager.sol",
        "exportedSymbols": {
            "PrimaryIssueManager": [
                9283
            ]
        },
        "id": 9284,
        "license": "UNLICENSED",
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 6362,
                "literals": [
                    "solidity",
                    "^",
                    "0.7",
                    ".1"
                ],
                "nodeType": "PragmaDirective",
                "src": "117:23:18"
            },
            {
                "id": 6363,
                "literals": [
                    "experimental",
                    "ABIEncoderV2"
                ],
                "nodeType": "PragmaDirective",
                "src": "142:33:18"
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol",
                "id": 6364,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 2939,
                "src": "179:76:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol",
                "id": 6365,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 2861,
                "src": "257:75:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol",
                "id": 6366,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 3046,
                "src": "334:77:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/math/Math.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/math/Math.sol",
                "id": 6367,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 2368,
                "src": "413:66:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol",
                "id": 6368,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 781,
                "src": "481:72:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-vault/contracts/interfaces/IVault.sol",
                "file": "@balancer-labs/v2-vault/contracts/interfaces/IVault.sol",
                "id": 6369,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 3689,
                "src": "557:65:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol",
                "file": "@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol",
                "id": 6370,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 3128,
                "src": "624:65:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/IPrimaryIssuePoolFactory.sol",
                "file": "./interfaces/IPrimaryIssuePoolFactory.sol",
                "id": 6371,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 12049,
                "src": "693:51:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/IPrimaryIssuePool.sol",
                "file": "./interfaces/IPrimaryIssuePool.sol",
                "id": 6372,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 12017,
                "src": "746:44:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                "file": "./interfaces/VerifiedClient.sol",
                "id": 6373,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 12415,
                "src": "794:41:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/IMarketMaker.sol",
                "file": "./interfaces/IMarketMaker.sol",
                "id": 6374,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 11882,
                "src": "837:39:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ILiquidity.sol",
                "file": "./interfaces/ILiquidity.sol",
                "id": 6375,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 11309,
                "src": "878:37:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/IFactory.sol",
                "file": "./interfaces/IFactory.sol",
                "id": 6376,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 11118,
                "src": "917:35:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ISecurity.sol",
                "file": "./interfaces/ISecurity.sol",
                "id": 6377,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 12123,
                "src": "954:36:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/IDistribution.sol",
                "file": "./interfaces/IDistribution.sol",
                "id": 6378,
                "nodeType": "ImportDirective",
                "scope": 9284,
                "sourceUnit": 11002,
                "src": "992:40:18",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "abstract": false,
                "baseContracts": [
                    {
                        "baseName": {
                            "id": 6379,
                            "name": "IMarketMaker",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 11881,
                            "src": "1068:12:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IMarketMaker_$11881",
                                "typeString": "contract IMarketMaker"
                            }
                        },
                        "id": 6380,
                        "nodeType": "InheritanceSpecifier",
                        "src": "1068:12:18"
                    },
                    {
                        "baseName": {
                            "id": 6381,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 3045,
                            "src": "1082:7:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$3045",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 6382,
                        "nodeType": "InheritanceSpecifier",
                        "src": "1082:7:18"
                    }
                ],
                "contractDependencies": [
                    3045,
                    11881
                ],
                "contractKind": "contract",
                "fullyImplemented": true,
                "id": 9283,
                "linearizedBaseContracts": [
                    9283,
                    3045,
                    11881
                ],
                "name": "PrimaryIssueManager",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "id": 6385,
                        "libraryName": {
                            "id": 6383,
                            "name": "Math",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 2367,
                            "src": "1105:4:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Math_$2367",
                                "typeString": "library Math"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "1099:23:18",
                        "typeName": {
                            "id": 6384,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1114:7:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "id": 6388,
                        "libraryName": {
                            "id": 6386,
                            "name": "FixedPoint",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 780,
                            "src": "1134:10:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FixedPoint_$780",
                                "typeString": "library FixedPoint"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "1128:29:18",
                        "typeName": {
                            "id": 6387,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1149:7:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "constant": false,
                        "id": 6390,
                        "mutability": "mutable",
                        "name": "factory",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1192:23:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 6389,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1192:7:18",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6392,
                        "mutability": "mutable",
                        "name": "vault",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1222:21:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 6391,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1222:7:18",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6395,
                        "mutability": "mutable",
                        "name": "swapFeePercentage",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1250:35:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 6393,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1250:7:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "value": {
                            "hexValue": "30",
                            "id": 6394,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1284:1:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                            },
                            "value": "0"
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": true,
                        "id": 6403,
                        "mutability": "constant",
                        "name": "_INITIAL_BPT_SUPPLY",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1294:59:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 6396,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1294:7:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "value": {
                            "commonType": {
                                "typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
                                "typeString": "int_const 5192...(26 digits omitted)...0095"
                            },
                            "id": 6402,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                                "commonType": {
                                    "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
                                    "typeString": "int_const 5192...(26 digits omitted)...0096"
                                },
                                "id": 6400,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                    "hexValue": "32",
                                    "id": 6397,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1341:1:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_rational_2_by_1",
                                        "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "**",
                                "rightExpression": {
                                    "components": [
                                        {
                                            "hexValue": "313132",
                                            "id": 6398,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "1345:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_112_by_1",
                                                "typeString": "int_const 112"
                                            },
                                            "value": "112"
                                        }
                                    ],
                                    "id": 6399,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "1344:5:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_rational_112_by_1",
                                        "typeString": "int_const 112"
                                    }
                                },
                                "src": "1341:8:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
                                    "typeString": "int_const 5192...(26 digits omitted)...0096"
                                }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                                "hexValue": "31",
                                "id": 6401,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1352:1:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                },
                                "value": "1"
                            },
                            "src": "1341:12:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
                                "typeString": "int_const 5192...(26 digits omitted)...0095"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": true,
                        "id": 6406,
                        "mutability": "constant",
                        "name": "_DEFAULT_MINIMUM_BPT",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1360:51:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 6404,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1360:7:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "value": {
                            "hexValue": "316536",
                            "id": 6405,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1408:3:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000000_by_1",
                                "typeString": "int_const 1000000"
                            },
                            "value": "1e6"
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6408,
                        "mutability": "mutable",
                        "name": "products",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1529:25:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IFactory_$11117",
                            "typeString": "contract IFactory"
                        },
                        "typeName": {
                            "id": 6407,
                            "name": "IFactory",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 11117,
                            "src": "1529:8:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IFactory_$11117",
                                "typeString": "contract IFactory"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6410,
                        "mutability": "mutable",
                        "name": "client",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1613:29:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                            "typeString": "contract VerifiedClient"
                        },
                        "typeName": {
                            "id": 6409,
                            "name": "VerifiedClient",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 12414,
                            "src": "1613:14:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                "typeString": "contract VerifiedClient"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6412,
                        "mutability": "mutable",
                        "name": "LiquidityContract",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1811:33:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 6411,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1811:7:18",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6414,
                        "mutability": "mutable",
                        "name": "distribution",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1883:28:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 6413,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1883:7:18",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6416,
                        "mutability": "mutable",
                        "name": "lock",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "1933:17:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                        },
                        "typeName": {
                            "id": 6415,
                            "name": "bool",
                            "nodeType": "ElementaryTypeName",
                            "src": "1933:4:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 6432,
                            "nodeType": "Block",
                            "src": "2027:79:18",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 6427,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 6423,
                                                    "name": "caller",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6420,
                                                    "src": "2046:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "baseExpression": {
                                                        "id": 6424,
                                                        "name": "pools",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6588,
                                                        "src": "2056:5:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                            "typeString": "mapping(bytes32 => address)"
                                                        }
                                                    },
                                                    "id": 6426,
                                                    "indexExpression": {
                                                        "id": 6425,
                                                        "name": "poolId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6418,
                                                        "src": "2062:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "2056:13:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "2046:23:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "496e76616c696420706f6f6c",
                                                "id": 6428,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2071:14:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_f360b33bfe895928de02515948a0ed001f38b1feb515d5228209e7ea318f2dae",
                                                    "typeString": "literal_string \"Invalid pool\""
                                                },
                                                "value": "Invalid pool"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_f360b33bfe895928de02515948a0ed001f38b1feb515d5228209e7ea318f2dae",
                                                    "typeString": "literal_string \"Invalid pool\""
                                                }
                                            ],
                                            "id": 6422,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "2038:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6429,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2038:48:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6430,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2038:48:18"
                                },
                                {
                                    "id": 6431,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "2097:1:18"
                                }
                            ]
                        },
                        "id": 6433,
                        "name": "onlyPool",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 6421,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6418,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6433,
                                    "src": "1995:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6417,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1995:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6420,
                                    "mutability": "mutable",
                                    "name": "caller",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6433,
                                    "src": "2011:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6419,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2011:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1994:32:18"
                        },
                        "src": "1977:129:18",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 6445,
                            "nodeType": "Block",
                            "src": "2146:92:18",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 6440,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 6438,
                                                    "name": "sender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6435,
                                                    "src": "2165:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "id": 6439,
                                                    "name": "LiquidityContract",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6412,
                                                    "src": "2173:17:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "2165:25:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "4f6e6c79204c697175696469747920636f6e7472616374",
                                                "id": 6441,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2192:25:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_4c500b50d5f4347423ffbfce82a12d475c21211138f84b6aeb278383c64623cb",
                                                    "typeString": "literal_string \"Only Liquidity contract\""
                                                },
                                                "value": "Only Liquidity contract"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_4c500b50d5f4347423ffbfce82a12d475c21211138f84b6aeb278383c64623cb",
                                                    "typeString": "literal_string \"Only Liquidity contract\""
                                                }
                                            ],
                                            "id": 6437,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "2157:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6442,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2157:61:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6443,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2157:61:18"
                                },
                                {
                                    "id": 6444,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "2229:1:18"
                                }
                            ]
                        },
                        "id": 6446,
                        "name": "onlyLP",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 6436,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6435,
                                    "mutability": "mutable",
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6446,
                                    "src": "2130:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6434,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2130:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2129:16:18"
                        },
                        "src": "2114:124:18",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 6469,
                            "nodeType": "Block",
                            "src": "2287:140:18",
                            "statements": [
                                {
                                    "assignments": [
                                        6451,
                                        null,
                                        null
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6451,
                                            "mutability": "mutable",
                                            "name": "role",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6469,
                                            "src": "2299:12:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 6450,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "2299:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        },
                                        null,
                                        null
                                    ],
                                    "id": 6456,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 6454,
                                                "name": "sender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6448,
                                                "src": "2334:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "id": 6452,
                                                "name": "client",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6410,
                                                "src": "2319:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                                    "typeString": "contract VerifiedClient"
                                                }
                                            },
                                            "id": 6453,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getRole",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12315,
                                            "src": "2319:14:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                            }
                                        },
                                        "id": 6455,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2319:22:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "tuple(bytes32,bytes32,bytes32)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "2298:43:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 6464,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 6460,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "id": 6458,
                                                        "name": "role",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6451,
                                                        "src": "2360:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "hexValue": "414d",
                                                        "id": 6459,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "2366:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_4cf6e3bc05cd203ed907ea1df70147cc2422ffac683b9c4e8ab1f51909c1e11e",
                                                            "typeString": "literal_string \"AM\""
                                                        },
                                                        "value": "AM"
                                                    },
                                                    "src": "2360:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 6463,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "id": 6461,
                                                        "name": "role",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6451,
                                                        "src": "2374:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "hexValue": "4450",
                                                        "id": 6462,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "2380:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_2e7a99dcc48463ba57667732f1d19d96afa51e11db099e5c9c708076a0a08040",
                                                            "typeString": "literal_string \"DP\""
                                                        },
                                                        "value": "DP"
                                                    },
                                                    "src": "2374:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "2360:24:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "4f6e6c79204173736574206d616e61676572",
                                                "id": 6465,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2386:20:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_3bb60760787b59b1f922f1e8c89cdb2ed902285d1cdaaa993a1737432f810c4d",
                                                    "typeString": "literal_string \"Only Asset manager\""
                                                },
                                                "value": "Only Asset manager"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_3bb60760787b59b1f922f1e8c89cdb2ed902285d1cdaaa993a1737432f810c4d",
                                                    "typeString": "literal_string \"Only Asset manager\""
                                                }
                                            ],
                                            "id": 6457,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "2352:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6466,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2352:55:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6467,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2352:55:18"
                                },
                                {
                                    "id": 6468,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "2418:1:18"
                                }
                            ]
                        },
                        "id": 6470,
                        "name": "onlyAssetManager",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 6449,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6448,
                                    "mutability": "mutable",
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6470,
                                    "src": "2272:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6447,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2272:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2271:16:18"
                        },
                        "src": "2246:181:18",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 6489,
                            "nodeType": "Block",
                            "src": "2469:135:18",
                            "statements": [
                                {
                                    "assignments": [
                                        6475,
                                        null,
                                        null
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6475,
                                            "mutability": "mutable",
                                            "name": "role",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6489,
                                            "src": "2481:12:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 6474,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "2481:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        },
                                        null,
                                        null
                                    ],
                                    "id": 6480,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 6478,
                                                "name": "sender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6472,
                                                "src": "2516:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "id": 6476,
                                                "name": "client",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6410,
                                                "src": "2501:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                                    "typeString": "contract VerifiedClient"
                                                }
                                            },
                                            "id": 6477,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getRole",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12315,
                                            "src": "2501:14:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                            }
                                        },
                                        "id": 6479,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2501:22:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "tuple(bytes32,bytes32,bytes32)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "2480:43:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 6484,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 6482,
                                                    "name": "role",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6475,
                                                    "src": "2542:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "hexValue": "4450",
                                                    "id": 6483,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "2548:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_2e7a99dcc48463ba57667732f1d19d96afa51e11db099e5c9c708076a0a08040",
                                                        "typeString": "literal_string \"DP\""
                                                    },
                                                    "value": "DP"
                                                },
                                                "src": "2542:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "4f6e6c79204465706f736974617279207061727469636970616e74",
                                                "id": 6485,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2554:29:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_894a32609b0720c7aeffef479ce5ac9284470305252de585494f8b33c6ad3c3f",
                                                    "typeString": "literal_string \"Only Depositary participant\""
                                                },
                                                "value": "Only Depositary participant"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_894a32609b0720c7aeffef479ce5ac9284470305252de585494f8b33c6ad3c3f",
                                                    "typeString": "literal_string \"Only Depositary participant\""
                                                }
                                            ],
                                            "id": 6481,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "2534:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6486,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2534:50:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6487,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2534:50:18"
                                },
                                {
                                    "id": 6488,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "2595:1:18"
                                }
                            ]
                        },
                        "id": 6490,
                        "name": "onlyDP",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 6473,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6472,
                                    "mutability": "mutable",
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6490,
                                    "src": "2454:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6471,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2454:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2453:16:18"
                        },
                        "src": "2438:166:18",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 6511,
                            "nodeType": "Block",
                            "src": "2672:120:18",
                            "statements": [
                                {
                                    "assignments": [
                                        6497
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6497,
                                            "mutability": "mutable",
                                            "name": "DP",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6511,
                                            "src": "2683:10:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 6496,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "2683:7:18",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 6502,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 6500,
                                                "name": "security",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6494,
                                                "src": "2711:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "id": 6498,
                                                "name": "products",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6408,
                                                "src": "2696:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IFactory_$11117",
                                                    "typeString": "contract IFactory"
                                                }
                                            },
                                            "id": 6499,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getDP",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11116,
                                            "src": "2696:14:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                                                "typeString": "function (address) view external returns (address)"
                                            }
                                        },
                                        "id": 6501,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2696:24:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "2683:37:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 6506,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 6504,
                                                    "name": "DP",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6497,
                                                    "src": "2739:2:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "id": 6505,
                                                    "name": "sender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6492,
                                                    "src": "2743:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "2739:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "4f6e6c79204973737565206d616e61676572",
                                                "id": 6507,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "2751:20:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_9b8450a267bdfe8b71f7bef015e8fa3501a6a6639639e243df5adcdb48a65296",
                                                    "typeString": "literal_string \"Only Issue manager\""
                                                },
                                                "value": "Only Issue manager"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_9b8450a267bdfe8b71f7bef015e8fa3501a6a6639639e243df5adcdb48a65296",
                                                    "typeString": "literal_string \"Only Issue manager\""
                                                }
                                            ],
                                            "id": 6503,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "2731:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6508,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2731:41:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6509,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2731:41:18"
                                },
                                {
                                    "id": 6510,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "2783:1:18"
                                }
                            ]
                        },
                        "id": 6512,
                        "name": "onlyIssueManager",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 6495,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6492,
                                    "mutability": "mutable",
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6512,
                                    "src": "2639:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6491,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2639:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6494,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6512,
                                    "src": "2655:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6493,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2655:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2638:34:18"
                        },
                        "src": "2613:179:18",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 6515,
                        "mutability": "mutable",
                        "name": "offeredTokens",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "2831:32:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                            "typeString": "address[]"
                        },
                        "typeName": {
                            "baseType": {
                                "id": 6513,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "2831:7:18",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "id": 6514,
                            "nodeType": "ArrayTypeName",
                            "src": "2831:9:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                            }
                        },
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 6519,
                        "mutability": "mutable",
                        "name": "offeredTokenIndex",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "2948:53:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                        },
                        "typeName": {
                            "id": 6518,
                            "keyType": {
                                "id": 6516,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "2956:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "2948:27:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                            },
                            "valueType": {
                                "id": 6517,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "2967:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6524,
                        "mutability": "mutable",
                        "name": "toMatchTokens",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "3042:50:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                            "typeString": "mapping(address => struct IMarketMaker.token[])"
                        },
                        "typeName": {
                            "id": 6523,
                            "keyType": {
                                "id": 6520,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3050:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "3042:27:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                "typeString": "mapping(address => struct IMarketMaker.token[])"
                            },
                            "valueType": {
                                "baseType": {
                                    "id": 6521,
                                    "name": "token",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 11675,
                                    "src": "3061:5:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                        "typeString": "struct IMarketMaker.token"
                                    }
                                },
                                "id": 6522,
                                "nodeType": "ArrayTypeName",
                                "src": "3061:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage_ptr",
                                    "typeString": "struct IMarketMaker.token[]"
                                }
                            }
                        },
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 6531,
                        "mutability": "mutable",
                        "name": "mmtokens",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "3195:65:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                            "typeString": "mapping(address => mapping(address => struct IMarketMaker.token[]))"
                        },
                        "typeName": {
                            "id": 6530,
                            "keyType": {
                                "id": 6525,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3203:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "3195:47:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.token[]))"
                            },
                            "valueType": {
                                "id": 6529,
                                "keyType": {
                                    "id": 6526,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3222:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "3214:27:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                    "typeString": "mapping(address => struct IMarketMaker.token[])"
                                },
                                "valueType": {
                                    "baseType": {
                                        "id": 6527,
                                        "name": "token",
                                        "nodeType": "UserDefinedTypeName",
                                        "referencedDeclaration": 11675,
                                        "src": "3233:5:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                            "typeString": "struct IMarketMaker.token"
                                        }
                                    },
                                    "id": 6528,
                                    "nodeType": "ArrayTypeName",
                                    "src": "3233:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage_ptr",
                                        "typeString": "struct IMarketMaker.token[]"
                                    }
                                }
                            }
                        },
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 6536,
                        "mutability": "mutable",
                        "name": "pairedTokens",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "3340:51:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$",
                            "typeString": "mapping(address => address[])"
                        },
                        "typeName": {
                            "id": 6535,
                            "keyType": {
                                "id": 6532,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3348:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "3340:29:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$",
                                "typeString": "mapping(address => address[])"
                            },
                            "valueType": {
                                "baseType": {
                                    "id": 6533,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3359:7:18",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "id": 6534,
                                "nodeType": "ArrayTypeName",
                                "src": "3359:9:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                    "typeString": "address[]"
                                }
                            }
                        },
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 6542,
                        "mutability": "mutable",
                        "name": "pairedTokenIndex",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "3479:72:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(address => mapping(address => uint256))"
                        },
                        "typeName": {
                            "id": 6541,
                            "keyType": {
                                "id": 6537,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3487:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "3479:47:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                "typeString": "mapping(address => mapping(address => uint256))"
                            },
                            "valueType": {
                                "id": 6540,
                                "keyType": {
                                    "id": 6538,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3506:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "3498:27:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                },
                                "valueType": {
                                    "id": 6539,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3517:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6548,
                        "mutability": "mutable",
                        "name": "qlTokens",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "3661:67:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                            "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity))"
                        },
                        "typeName": {
                            "id": 6547,
                            "keyType": {
                                "id": 6543,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3669:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "3661:49:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity))"
                            },
                            "valueType": {
                                "id": 6546,
                                "keyType": {
                                    "id": 6544,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "3688:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "3680:29:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                    "typeString": "mapping(address => struct IMarketMaker.liquidity)"
                                },
                                "valueType": {
                                    "id": 6545,
                                    "name": "liquidity",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 11684,
                                    "src": "3699:9:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_liquidity_$11684_storage_ptr",
                                        "typeString": "struct IMarketMaker.liquidity"
                                    }
                                }
                            }
                        },
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 6553,
                        "mutability": "mutable",
                        "name": "liquidityProviders",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "3785:51:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                            "typeString": "mapping(address => struct IMarketMaker.lp[])"
                        },
                        "typeName": {
                            "id": 6552,
                            "keyType": {
                                "id": 6549,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3793:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "3785:24:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                "typeString": "mapping(address => struct IMarketMaker.lp[])"
                            },
                            "valueType": {
                                "baseType": {
                                    "id": 6550,
                                    "name": "lp",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 11695,
                                    "src": "3804:2:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_lp_$11695_storage_ptr",
                                        "typeString": "struct IMarketMaker.lp"
                                    }
                                },
                                "id": 6551,
                                "nodeType": "ArrayTypeName",
                                "src": "3804:4:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage_ptr",
                                    "typeString": "struct IMarketMaker.lp[]"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6557,
                        "mutability": "mutable",
                        "name": "totalUnderwritten",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "3932:53:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                        },
                        "typeName": {
                            "id": 6556,
                            "keyType": {
                                "id": 6554,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3940:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "3932:27:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                            },
                            "valueType": {
                                "id": 6555,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "3951:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6563,
                        "mutability": "mutable",
                        "name": "underwriters",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "4065:68:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                        },
                        "typeName": {
                            "id": 6562,
                            "keyType": {
                                "id": 6558,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4073:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "4065:47:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                "typeString": "mapping(bytes32 => mapping(address => uint256))"
                            },
                            "valueType": {
                                "id": 6561,
                                "keyType": {
                                    "id": 6559,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4092:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "4084:27:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                },
                                "valueType": {
                                    "id": 6560,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4103:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6567,
                        "mutability": "mutable",
                        "name": "issues",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "4211:43:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_primary_$11703_storage_$",
                            "typeString": "mapping(address => struct IMarketMaker.primary)"
                        },
                        "typeName": {
                            "id": 6566,
                            "keyType": {
                                "id": 6564,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "4219:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "4211:27:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_primary_$11703_storage_$",
                                "typeString": "mapping(address => struct IMarketMaker.primary)"
                            },
                            "valueType": {
                                "id": 6565,
                                "name": "primary",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 11703,
                                "src": "4230:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_primary_$11703_storage_ptr",
                                    "typeString": "struct IMarketMaker.primary"
                                }
                            }
                        },
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 6572,
                        "mutability": "mutable",
                        "name": "investors",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "4346:54:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                            "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions[])"
                        },
                        "typeName": {
                            "id": 6571,
                            "keyType": {
                                "id": 6568,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4354:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "4346:35:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions[])"
                            },
                            "valueType": {
                                "baseType": {
                                    "id": 6569,
                                    "name": "subscriptions",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 11714,
                                    "src": "4365:13:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                        "typeString": "struct IMarketMaker.subscriptions"
                                    }
                                },
                                "id": 6570,
                                "nodeType": "ArrayTypeName",
                                "src": "4365:15:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_ptr",
                                    "typeString": "struct IMarketMaker.subscriptions[]"
                                }
                            }
                        },
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 6578,
                        "mutability": "mutable",
                        "name": "subscriberIndex",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "4518:71:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                        },
                        "typeName": {
                            "id": 6577,
                            "keyType": {
                                "id": 6573,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4526:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "4518:47:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                "typeString": "mapping(bytes32 => mapping(address => uint256))"
                            },
                            "valueType": {
                                "id": 6576,
                                "keyType": {
                                    "id": 6574,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4545:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "4537:27:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                },
                                "valueType": {
                                    "id": 6575,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4556:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6584,
                        "mutability": "mutable",
                        "name": "subscribed",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "4655:66:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                        },
                        "typeName": {
                            "id": 6583,
                            "keyType": {
                                "id": 6579,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4663:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "4655:47:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                "typeString": "mapping(bytes32 => mapping(address => uint256))"
                            },
                            "valueType": {
                                "id": 6582,
                                "keyType": {
                                    "id": 6580,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4682:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "4674:27:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                },
                                "valueType": {
                                    "id": 6581,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4693:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6588,
                        "mutability": "mutable",
                        "name": "pools",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "4770:41:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                            "typeString": "mapping(bytes32 => address)"
                        },
                        "typeName": {
                            "id": 6587,
                            "keyType": {
                                "id": 6585,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4778:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "4770:27:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                "typeString": "mapping(bytes32 => address)"
                            },
                            "valueType": {
                                "id": 6586,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "4789:7:18",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6592,
                        "mutability": "mutable",
                        "name": "poolSecurity",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "4870:48:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                            "typeString": "mapping(bytes32 => address)"
                        },
                        "typeName": {
                            "id": 6591,
                            "keyType": {
                                "id": 6589,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "4878:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "4870:27:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                "typeString": "mapping(bytes32 => address)"
                            },
                            "valueType": {
                                "id": 6590,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "4889:7:18",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6598,
                        "mutability": "mutable",
                        "name": "LPTokenAllotted",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "4960:72:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(address => mapping(address => uint256))"
                        },
                        "typeName": {
                            "id": 6597,
                            "keyType": {
                                "id": 6593,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "4968:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "4960:48:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                "typeString": "mapping(address => mapping(address => uint256))"
                            },
                            "valueType": {
                                "id": 6596,
                                "keyType": {
                                    "id": 6594,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4988:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "4979:28:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                },
                                "valueType": {
                                    "id": 6595,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4999:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6602,
                        "mutability": "mutable",
                        "name": "fees",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "5096:40:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                        },
                        "typeName": {
                            "id": 6601,
                            "keyType": {
                                "id": 6599,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "5104:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "5096:27:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                            },
                            "valueType": {
                                "id": 6600,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "5115:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6608,
                        "mutability": "mutable",
                        "name": "customFee",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "5210:65:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(address => mapping(address => uint256))"
                        },
                        "typeName": {
                            "id": 6607,
                            "keyType": {
                                "id": 6603,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "5218:7:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "5210:47:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                "typeString": "mapping(address => mapping(address => uint256))"
                            },
                            "valueType": {
                                "id": 6606,
                                "keyType": {
                                    "id": 6604,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5237:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "5229:27:18",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                },
                                "valueType": {
                                    "id": 6605,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5248:7:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 6610,
                        "mutability": "mutable",
                        "name": "revshare",
                        "nodeType": "VariableDeclaration",
                        "scope": 9283,
                        "src": "5329:24:18",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 6609,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5329:7:18",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "anonymous": false,
                        "id": 6626,
                        "name": "marketmakers",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 6625,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6612,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6626,
                                    "src": "5381:24:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6611,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5381:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6614,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6626,
                                    "src": "5407:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6613,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5407:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6616,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "provider",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6626,
                                    "src": "5425:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6615,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5425:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6618,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6626,
                                    "src": "5443:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6617,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5443:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6620,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "tokenOffered",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6626,
                                    "src": "5461:20:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6619,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5461:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6622,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "underwritten",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6626,
                                    "src": "5483:20:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6621,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5483:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6624,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "earnings",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6626,
                                    "src": "5505:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6623,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5505:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5380:142:18"
                        },
                        "src": "5362:161:18"
                    },
                    {
                        "anonymous": false,
                        "id": 6644,
                        "name": "subscribers",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 6643,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6628,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6644,
                                    "src": "5547:24:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6627,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5547:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6630,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6644,
                                    "src": "5573:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6629,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5573:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6632,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "investor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6644,
                                    "src": "5589:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6631,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5589:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6634,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6644,
                                    "src": "5607:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6633,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5607:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6636,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "cashSwapped",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6644,
                                    "src": "5625:19:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6635,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5625:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6638,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "securitySwapped",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6644,
                                    "src": "5646:23:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6637,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5646:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6640,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "timestamp",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6644,
                                    "src": "5671:17:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6639,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5671:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6642,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "subscription",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6644,
                                    "src": "5690:17:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 6641,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5690:4:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5546:162:18"
                        },
                        "src": "5529:180:18"
                    },
                    {
                        "anonymous": false,
                        "id": 6664,
                        "name": "offers",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 6663,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6646,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "party",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6664,
                                    "src": "5728:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6645,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5728:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6648,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "offered",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6664,
                                    "src": "5743:23:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6647,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5743:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6650,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "amountOffered",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6664,
                                    "src": "5768:21:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6649,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5768:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6652,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "tomatch",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6664,
                                    "src": "5791:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6651,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5791:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6654,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "amountDesired",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6664,
                                    "src": "5808:21:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6653,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5808:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6656,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "minAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6664,
                                    "src": "5831:17:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6655,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5831:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6658,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "isin",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6664,
                                    "src": "5850:12:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6657,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5850:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6660,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "minimumOrderSize",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6664,
                                    "src": "5864:24:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6659,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5864:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6662,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "offeringDocs",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6664,
                                    "src": "5890:19:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6661,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5890:6:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5727:183:18"
                        },
                        "src": "5715:196:18"
                    },
                    {
                        "anonymous": false,
                        "id": 6672,
                        "name": "closures",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 6671,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6666,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6672,
                                    "src": "5932:22:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6665,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5932:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6668,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6672,
                                    "src": "5956:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6667,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5956:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6670,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "timestamp",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6672,
                                    "src": "5974:17:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6669,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5974:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "5931:61:18"
                        },
                        "src": "5917:76:18"
                    },
                    {
                        "anonymous": false,
                        "id": 6688,
                        "name": "allotments",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 6687,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6674,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6688,
                                    "src": "6016:22:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6673,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6016:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6676,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "investor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6688,
                                    "src": "6040:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6675,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6040:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6678,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6688,
                                    "src": "6058:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6677,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6058:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6680,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "securitySubscription",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6688,
                                    "src": "6076:28:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6679,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6076:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6682,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6688,
                                    "src": "6106:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6681,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6106:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6684,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "allotedAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6688,
                                    "src": "6124:21:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6683,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6124:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6686,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "timestamp",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6688,
                                    "src": "6147:17:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6685,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6147:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6015:150:18"
                        },
                        "src": "5999:167:18"
                    },
                    {
                        "anonymous": false,
                        "id": 6704,
                        "name": "refunds",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 6703,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6690,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6704,
                                    "src": "6186:22:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6689,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6186:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6692,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "investor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6704,
                                    "src": "6210:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6691,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6210:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6694,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6704,
                                    "src": "6228:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6693,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6228:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6696,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "securitySubscription",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6704,
                                    "src": "6246:28:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6695,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6246:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6698,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6704,
                                    "src": "6276:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6697,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6276:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6700,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "refundAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6704,
                                    "src": "6294:20:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6699,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6294:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6702,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "timestamp",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6704,
                                    "src": "6316:17:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6701,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6316:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6185:149:18"
                        },
                        "src": "6172:163:18"
                    },
                    {
                        "anonymous": false,
                        "id": 6720,
                        "name": "settlements",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 6719,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6706,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6720,
                                    "src": "6359:22:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6705,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6359:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6708,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6720,
                                    "src": "6383:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6707,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6383:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6710,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6720,
                                    "src": "6401:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6709,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6401:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6712,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "liquidityProvider",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6720,
                                    "src": "6419:25:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6711,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6419:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6714,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "underwritingFee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6720,
                                    "src": "6446:23:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6713,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6446:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6716,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6720,
                                    "src": "6471:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6715,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6471:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6718,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "subscription",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6720,
                                    "src": "6487:20:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6717,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6487:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6358:150:18"
                        },
                        "src": "6341:168:18"
                    },
                    {
                        "anonymous": false,
                        "id": 6728,
                        "name": "feecollection",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 6727,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6722,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6728,
                                    "src": "6535:24:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6721,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6535:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6724,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "collection",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6728,
                                    "src": "6561:18:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6723,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6561:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6726,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "timestamp",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6728,
                                    "src": "6581:17:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6725,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "6581:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "6534:65:18"
                        },
                        "src": "6515:85:18"
                    },
                    {
                        "body": {
                            "id": 6780,
                            "nodeType": "Block",
                            "src": "7252:291:18",
                            "statements": [
                                {
                                    "expression": {
                                        "id": 6750,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6748,
                                            "name": "factory",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6390,
                                            "src": "7263:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 6749,
                                            "name": "_factory",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6731,
                                            "src": "7273:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "7263:18:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 6751,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7263:18:18"
                                },
                                {
                                    "expression": {
                                        "id": 6754,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6752,
                                            "name": "vault",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6392,
                                            "src": "7292:5:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 6753,
                                            "name": "_vault",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6735,
                                            "src": "7300:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "7292:14:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 6755,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7292:14:18"
                                },
                                {
                                    "expression": {
                                        "id": 6760,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6756,
                                            "name": "products",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6408,
                                            "src": "7325:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IFactory_$11117",
                                                "typeString": "contract IFactory"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "id": 6758,
                                                    "name": "_products",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6737,
                                                    "src": "7345:9:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 6757,
                                                "name": "IFactory",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 11117,
                                                "src": "7336:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_IFactory_$11117_$",
                                                    "typeString": "type(contract IFactory)"
                                                }
                                            },
                                            "id": 6759,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "7336:19:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IFactory_$11117",
                                                "typeString": "contract IFactory"
                                            }
                                        },
                                        "src": "7325:30:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_IFactory_$11117",
                                            "typeString": "contract IFactory"
                                        }
                                    },
                                    "id": 6761,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7325:30:18"
                                },
                                {
                                    "expression": {
                                        "id": 6766,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6762,
                                            "name": "client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6410,
                                            "src": "7374:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                                "typeString": "contract VerifiedClient"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "id": 6764,
                                                    "name": "_client",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6741,
                                                    "src": "7398:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 6763,
                                                "name": "VerifiedClient",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 12414,
                                                "src": "7383:14:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_VerifiedClient_$12414_$",
                                                    "typeString": "type(contract VerifiedClient)"
                                                }
                                            },
                                            "id": 6765,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "7383:23:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                                "typeString": "contract VerifiedClient"
                                            }
                                        },
                                        "src": "7374:32:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                            "typeString": "contract VerifiedClient"
                                        }
                                    },
                                    "id": 6767,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7374:32:18"
                                },
                                {
                                    "expression": {
                                        "id": 6770,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6768,
                                            "name": "swapFeePercentage",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6395,
                                            "src": "7417:17:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 6769,
                                            "name": "_swapFeePercentage",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6733,
                                            "src": "7437:18:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "7417:38:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 6771,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7417:38:18"
                                },
                                {
                                    "expression": {
                                        "id": 6774,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6772,
                                            "name": "LiquidityContract",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6412,
                                            "src": "7466:17:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 6773,
                                            "name": "_liquidity",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6739,
                                            "src": "7486:10:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "7466:30:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 6775,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7466:30:18"
                                },
                                {
                                    "expression": {
                                        "id": 6778,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6776,
                                            "name": "distribution",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6414,
                                            "src": "7507:12:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 6777,
                                            "name": "_distribution",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6743,
                                            "src": "7522:13:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "7507:28:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 6779,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7507:28:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 6729,
                            "nodeType": "StructuredDocumentation",
                            "src": "6608:460:18",
                            "text": "Initializes this asset management contract\n@param  _factory            reference to the primary issue pool factory contract\n@param  _swapFeePercentage  percentage of trading fee to be charged by the asset manager\n@param  _vault              reference to the Balancer vault\n@param  _products           reference to the Verified Products contract that this contract reports created primary issue pools to"
                        },
                        "functionSelector": "41c8b268",
                        "id": 6781,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "id": 6746,
                                "modifierName": {
                                    "id": 6745,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2993,
                                    "src": "7242:9:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "7242:9:18"
                            }
                        ],
                        "name": "initialize",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6744,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6731,
                                    "mutability": "mutable",
                                    "name": "_factory",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6781,
                                    "src": "7094:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6730,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7094:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6733,
                                    "mutability": "mutable",
                                    "name": "_swapFeePercentage",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6781,
                                    "src": "7112:26:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6732,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7112:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6735,
                                    "mutability": "mutable",
                                    "name": "_vault",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6781,
                                    "src": "7140:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6734,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7140:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6737,
                                    "mutability": "mutable",
                                    "name": "_products",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6781,
                                    "src": "7156:17:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6736,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7156:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6739,
                                    "mutability": "mutable",
                                    "name": "_liquidity",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6781,
                                    "src": "7175:18:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6738,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7175:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6741,
                                    "mutability": "mutable",
                                    "name": "_client",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6781,
                                    "src": "7195:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6740,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7195:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6743,
                                    "mutability": "mutable",
                                    "name": "_distribution",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6781,
                                    "src": "7212:21:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6742,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7212:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7093:141:18"
                        },
                        "returnParameters": {
                            "id": 6747,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7252:0:18"
                        },
                        "scope": 9283,
                        "src": "7074:469:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 6792,
                            "nodeType": "Block",
                            "src": "7598:43:18",
                            "statements": [
                                {
                                    "expression": {
                                        "id": 6790,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6788,
                                            "name": "swapFeePercentage",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6395,
                                            "src": "7609:17:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 6789,
                                            "name": "_fee",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6783,
                                            "src": "7629:4:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "7609:24:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 6791,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7609:24:18"
                                }
                            ]
                        },
                        "functionSelector": "69fe0e2d",
                        "id": 6793,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "id": 6786,
                                "modifierName": {
                                    "id": 6785,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2993,
                                    "src": "7588:9:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "7588:9:18"
                            }
                        ],
                        "name": "setFee",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 6784,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6783,
                                    "mutability": "mutable",
                                    "name": "_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6793,
                                    "src": "7567:12:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6782,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7567:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7566:14:18"
                        },
                        "returnParameters": {
                            "id": 6787,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7598:0:18"
                        },
                        "scope": 9283,
                        "src": "7551:90:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "public"
                    },
                    {
                        "baseFunctions": [
                            11733
                        ],
                        "body": {
                            "id": 6994,
                            "nodeType": "Block",
                            "src": "8503:1225:18",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 6816,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "UnaryOperation",
                                                "operator": "!",
                                                "prefix": true,
                                                "src": "8522:5:18",
                                                "subExpression": {
                                                    "id": 6815,
                                                    "name": "lock",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6416,
                                                    "src": "8523:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "416363657373206c6f636b6564",
                                                "id": 6817,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8529:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_4d7e8735d7e6b589ad30b5c5e1b474202e9b129903b8fd6665655fc3dd59e1c8",
                                                    "typeString": "literal_string \"Access locked\""
                                                },
                                                "value": "Access locked"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_4d7e8735d7e6b589ad30b5c5e1b474202e9b129903b8fd6665655fc3dd59e1c8",
                                                    "typeString": "literal_string \"Access locked\""
                                                }
                                            ],
                                            "id": 6814,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "8514:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6818,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8514:31:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6819,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8514:31:18"
                                },
                                {
                                    "expression": {
                                        "id": 6822,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6820,
                                            "name": "lock",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6416,
                                            "src": "8556:4:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "hexValue": "74727565",
                                            "id": 6821,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8563:4:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "true"
                                        },
                                        "src": "8556:11:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 6823,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8556:11:18"
                                },
                                {
                                    "assignments": [
                                        6825,
                                        null,
                                        null
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 6825,
                                            "mutability": "mutable",
                                            "name": "role",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 6994,
                                            "src": "8579:12:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 6824,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8579:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        },
                                        null,
                                        null
                                    ],
                                    "id": 6831,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "expression": {
                                                    "id": 6828,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -15,
                                                    "src": "8614:3:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 6829,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "src": "8614:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            ],
                                            "expression": {
                                                "id": 6826,
                                                "name": "client",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6410,
                                                "src": "8599:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                                    "typeString": "contract VerifiedClient"
                                                }
                                            },
                                            "id": 6827,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getRole",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12315,
                                            "src": "8599:14:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                                "typeString": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                            }
                                        },
                                        "id": 6830,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8599:26:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "tuple(bytes32,bytes32,bytes32)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8578:47:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 6842,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 6838,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "arguments": [
                                                            {
                                                                "id": 6835,
                                                                "name": "owned",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6796,
                                                                "src": "8666:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "id": 6833,
                                                                "name": "products",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6408,
                                                                "src": "8644:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IFactory_$11117",
                                                                    "typeString": "contract IFactory"
                                                                }
                                                            },
                                                            "id": 6834,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "checkProduct",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11055,
                                                            "src": "8644:21:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                                                                "typeString": "function (address) view external returns (bool)"
                                                            }
                                                        },
                                                        "id": 6836,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "8644:28:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "hexValue": "74727565",
                                                        "id": 6837,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "bool",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "8674:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "value": "true"
                                                    },
                                                    "src": "8644:34:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 6841,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "id": 6839,
                                                        "name": "role",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6825,
                                                        "src": "8682:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "hexValue": "414d",
                                                        "id": 6840,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "8688:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_4cf6e3bc05cd203ed907ea1df70147cc2422ffac683b9c4e8ab1f51909c1e11e",
                                                            "typeString": "literal_string \"AM\""
                                                        },
                                                        "value": "AM"
                                                    },
                                                    "src": "8682:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "8644:48:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "556e617574686f72697a656420616363657373",
                                                "id": 6843,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8694:21:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_b89edf027d3d1129b9f2c8dcd2ba89ffc6487f04ca050032214e13175a19a74a",
                                                    "typeString": "literal_string \"Unauthorized access\""
                                                },
                                                "value": "Unauthorized access"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_b89edf027d3d1129b9f2c8dcd2ba89ffc6487f04ca050032214e13175a19a74a",
                                                    "typeString": "literal_string \"Unauthorized access\""
                                                }
                                            ],
                                            "id": 6832,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "8636:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6844,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8636:80:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6845,
                                    "nodeType": "ExpressionStatement",
                                    "src": "8636:80:18"
                                },
                                {
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        },
                                        "id": 6848,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "id": 6846,
                                            "name": "role",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6825,
                                            "src": "8730:4:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "hexValue": "414d",
                                            "id": 6847,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "string",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "8736:4:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_stringliteral_4cf6e3bc05cd203ed907ea1df70147cc2422ffac683b9c4e8ab1f51909c1e11e",
                                                "typeString": "literal_string \"AM\""
                                            },
                                            "value": "AM"
                                        },
                                        "src": "8730:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 6963,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "arguments": [
                                                    {
                                                        "id": 6960,
                                                        "name": "owner",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6808,
                                                        "src": "9508:5:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "arguments": [
                                                            {
                                                                "id": 6957,
                                                                "name": "owned",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6796,
                                                                "src": "9491:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 6956,
                                                            "name": "ERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2860,
                                                            "src": "9485:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                                "typeString": "type(contract ERC20)"
                                                            }
                                                        },
                                                        "id": 6958,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "9485:12:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_ERC20_$2860",
                                                            "typeString": "contract ERC20"
                                                        }
                                                    },
                                                    "id": 6959,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "balanceOf",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 2483,
                                                    "src": "9485:22:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                        "typeString": "function (address) view external returns (uint256)"
                                                    }
                                                },
                                                "id": 6961,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "9485:29:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": ">=",
                                            "rightExpression": {
                                                "id": 6962,
                                                "name": "offered",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6800,
                                                "src": "9516:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "9485:38:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "id": 6988,
                                        "nodeType": "IfStatement",
                                        "src": "9482:216:18",
                                        "trueBody": {
                                            "id": 6987,
                                            "nodeType": "Block",
                                            "src": "9524:174:18",
                                            "statements": [
                                                {
                                                    "expression": {
                                                        "arguments": [
                                                            {
                                                                "id": 6968,
                                                                "name": "owner",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6808,
                                                                "src": "9578:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "id": 6971,
                                                                        "name": "this",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": -28,
                                                                        "src": "9593:4:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                            "typeString": "contract PrimaryIssueManager"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                            "typeString": "contract PrimaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "id": 6970,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "ElementaryTypeNameExpression",
                                                                    "src": "9585:7:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_address_$",
                                                                        "typeString": "type(address)"
                                                                    },
                                                                    "typeName": {
                                                                        "id": 6969,
                                                                        "name": "address",
                                                                        "nodeType": "ElementaryTypeName",
                                                                        "src": "9585:7:18",
                                                                        "typeDescriptions": {}
                                                                    }
                                                                },
                                                                "id": 6972,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "9585:13:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "id": 6973,
                                                                "name": "offered",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6800,
                                                                "src": "9600:7:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "id": 6965,
                                                                        "name": "owned",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6796,
                                                                        "src": "9558:5:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 6964,
                                                                    "name": "ERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2860,
                                                                    "src": "9552:5:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                                        "typeString": "type(contract ERC20)"
                                                                    }
                                                                },
                                                                "id": 6966,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "9552:12:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                                    "typeString": "contract ERC20"
                                                                }
                                                            },
                                                            "id": 6967,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "transferFrom",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 2582,
                                                            "src": "9552:25:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                                            }
                                                        },
                                                        "id": 6974,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "9552:56:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 6975,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "9552:56:18"
                                                },
                                                {
                                                    "expression": {
                                                        "arguments": [
                                                            {
                                                                "id": 6977,
                                                                "name": "owner",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6808,
                                                                "src": "9628:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "id": 6978,
                                                                "name": "owned",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6796,
                                                                "src": "9635:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "id": 6979,
                                                                "name": "isin",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6798,
                                                                "src": "9642:4:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            {
                                                                "id": 6980,
                                                                "name": "offered",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6800,
                                                                "src": "9648:7:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "id": 6981,
                                                                "name": "tomatch",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6802,
                                                                "src": "9657:7:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "id": 6982,
                                                                "name": "desired",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6804,
                                                                "src": "9666:7:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "id": 6983,
                                                                "name": "min",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6806,
                                                                "src": "9675:3:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "id": 6984,
                                                                "name": "docs",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6810,
                                                                "src": "9680:4:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "id": 6976,
                                                            "name": "make",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7082,
                                                            "src": "9623:4:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                                                                "typeString": "function (address,address,bytes32,uint256,address,uint256,uint256,string memory)"
                                                            }
                                                        },
                                                        "id": 6985,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "9623:62:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_tuple$__$",
                                                            "typeString": "tuple()"
                                                        }
                                                    },
                                                    "id": 6986,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "9623:62:18"
                                                }
                                            ]
                                        }
                                    },
                                    "id": 6989,
                                    "nodeType": "IfStatement",
                                    "src": "8727:971:18",
                                    "trueBody": {
                                        "id": 6955,
                                        "nodeType": "Block",
                                        "src": "8741:726:18",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 6873,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 6864,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "arguments": [
                                                                {
                                                                    "arguments": [
                                                                        {
                                                                            "id": 6855,
                                                                            "name": "this",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": -28,
                                                                            "src": "8790:4:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                "typeString": "contract PrimaryIssueManager"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                "typeString": "contract PrimaryIssueManager"
                                                                            }
                                                                        ],
                                                                        "id": 6854,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                        "src": "8782:7:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                            "typeString": "type(address)"
                                                                        },
                                                                        "typeName": {
                                                                            "id": 6853,
                                                                            "name": "address",
                                                                            "nodeType": "ElementaryTypeName",
                                                                            "src": "8782:7:18",
                                                                            "typeDescriptions": {}
                                                                        }
                                                                    },
                                                                    "id": 6856,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "8782:13:18",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "arguments": [
                                                                        {
                                                                            "id": 6850,
                                                                            "name": "owned",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6796,
                                                                            "src": "8765:5:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 6849,
                                                                        "name": "ERC20",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2860,
                                                                        "src": "8759:5:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                                            "typeString": "type(contract ERC20)"
                                                                        }
                                                                    },
                                                                    "id": 6851,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "8759:12:18",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ERC20_$2860",
                                                                        "typeString": "contract ERC20"
                                                                    }
                                                                },
                                                                "id": 6852,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "balanceOf",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 2483,
                                                                "src": "8759:22:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view external returns (uint256)"
                                                                }
                                                            },
                                                            "id": 6857,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "8759:37:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": ">=",
                                                        "rightExpression": {
                                                            "baseExpression": {
                                                                "baseExpression": {
                                                                    "id": 6858,
                                                                    "name": "LPTokenAllotted",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6598,
                                                                    "src": "8798:15:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                        "typeString": "mapping(address => mapping(address => uint256))"
                                                                    }
                                                                },
                                                                "id": 6861,
                                                                "indexExpression": {
                                                                    "expression": {
                                                                        "id": 6859,
                                                                        "name": "msg",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": -15,
                                                                        "src": "8814:3:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_magic_message",
                                                                            "typeString": "msg"
                                                                        }
                                                                    },
                                                                    "id": 6860,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "sender",
                                                                    "nodeType": "MemberAccess",
                                                                    "src": "8814:10:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "8798:27:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                    "typeString": "mapping(address => uint256)"
                                                                }
                                                            },
                                                            "id": 6863,
                                                            "indexExpression": {
                                                                "id": 6862,
                                                                "name": "owned",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6796,
                                                                "src": "8826:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "8798:34:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "8759:73:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "&&",
                                                    "rightExpression": {
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 6872,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "baseExpression": {
                                                                "baseExpression": {
                                                                    "id": 6865,
                                                                    "name": "LPTokenAllotted",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6598,
                                                                    "src": "8836:15:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                        "typeString": "mapping(address => mapping(address => uint256))"
                                                                    }
                                                                },
                                                                "id": 6868,
                                                                "indexExpression": {
                                                                    "expression": {
                                                                        "id": 6866,
                                                                        "name": "msg",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": -15,
                                                                        "src": "8852:3:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_magic_message",
                                                                            "typeString": "msg"
                                                                        }
                                                                    },
                                                                    "id": 6867,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "sender",
                                                                    "nodeType": "MemberAccess",
                                                                    "src": "8852:10:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "8836:27:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                    "typeString": "mapping(address => uint256)"
                                                                }
                                                            },
                                                            "id": 6870,
                                                            "indexExpression": {
                                                                "id": 6869,
                                                                "name": "owned",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6796,
                                                                "src": "8864:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "8836:34:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": ">=",
                                                        "rightExpression": {
                                                            "id": 6871,
                                                            "name": "offered",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6800,
                                                            "src": "8872:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "8836:43:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "8759:120:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "condition": {
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 6913,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "arguments": [
                                                                {
                                                                    "expression": {
                                                                        "id": 6909,
                                                                        "name": "msg",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": -15,
                                                                        "src": "9158:3:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_magic_message",
                                                                            "typeString": "msg"
                                                                        }
                                                                    },
                                                                    "id": 6910,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "sender",
                                                                    "nodeType": "MemberAccess",
                                                                    "src": "9158:10:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "arguments": [
                                                                        {
                                                                            "id": 6906,
                                                                            "name": "owned",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6796,
                                                                            "src": "9141:5:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 6905,
                                                                        "name": "ERC20",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2860,
                                                                        "src": "9135:5:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                                            "typeString": "type(contract ERC20)"
                                                                        }
                                                                    },
                                                                    "id": 6907,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "9135:12:18",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_ERC20_$2860",
                                                                        "typeString": "contract ERC20"
                                                                    }
                                                                },
                                                                "id": 6908,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "balanceOf",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 2483,
                                                                "src": "9135:22:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view external returns (uint256)"
                                                                }
                                                            },
                                                            "id": 6911,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "9135:34:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": ">=",
                                                        "rightExpression": {
                                                            "id": 6912,
                                                            "name": "offered",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6800,
                                                            "src": "9171:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "9135:43:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 6940,
                                                    "nodeType": "IfStatement",
                                                    "src": "9132:229:18",
                                                    "trueBody": {
                                                        "id": 6939,
                                                        "nodeType": "Block",
                                                        "src": "9179:182:18",
                                                        "statements": [
                                                            {
                                                                "expression": {
                                                                    "arguments": [
                                                                        {
                                                                            "expression": {
                                                                                "id": 6918,
                                                                                "name": "msg",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": -15,
                                                                                "src": "9224:3:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_magic_message",
                                                                                    "typeString": "msg"
                                                                                }
                                                                            },
                                                                            "id": 6919,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "sender",
                                                                            "nodeType": "MemberAccess",
                                                                            "src": "9224:10:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address_payable",
                                                                                "typeString": "address payable"
                                                                            }
                                                                        },
                                                                        {
                                                                            "arguments": [
                                                                                {
                                                                                    "id": 6922,
                                                                                    "name": "this",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": -28,
                                                                                    "src": "9244:4:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                        "typeString": "contract PrimaryIssueManager"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                        "typeString": "contract PrimaryIssueManager"
                                                                                    }
                                                                                ],
                                                                                "id": 6921,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                                "src": "9236:7:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                                    "typeString": "type(address)"
                                                                                },
                                                                                "typeName": {
                                                                                    "id": 6920,
                                                                                    "name": "address",
                                                                                    "nodeType": "ElementaryTypeName",
                                                                                    "src": "9236:7:18",
                                                                                    "typeDescriptions": {}
                                                                                }
                                                                            },
                                                                            "id": 6923,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "typeConversion",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "9236:13:18",
                                                                            "tryCall": false,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        {
                                                                            "id": 6924,
                                                                            "name": "offered",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6800,
                                                                            "src": "9251:7:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address_payable",
                                                                                "typeString": "address payable"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "arguments": [
                                                                                {
                                                                                    "id": 6915,
                                                                                    "name": "owned",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 6796,
                                                                                    "src": "9204:5:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "argumentTypes": [
                                                                                    {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                ],
                                                                                "id": 6914,
                                                                                "name": "ERC20",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2860,
                                                                                "src": "9198:5:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                                                    "typeString": "type(contract ERC20)"
                                                                                }
                                                                            },
                                                                            "id": 6916,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "kind": "typeConversion",
                                                                            "lValueRequested": false,
                                                                            "names": [],
                                                                            "nodeType": "FunctionCall",
                                                                            "src": "9198:12:18",
                                                                            "tryCall": false,
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_ERC20_$2860",
                                                                                "typeString": "contract ERC20"
                                                                            }
                                                                        },
                                                                        "id": 6917,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "transferFrom",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 2582,
                                                                        "src": "9198:25:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                            "typeString": "function (address,address,uint256) external returns (bool)"
                                                                        }
                                                                    },
                                                                    "id": 6925,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "9198:61:18",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "id": 6926,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "9198:61:18"
                                                            },
                                                            {
                                                                "expression": {
                                                                    "arguments": [
                                                                        {
                                                                            "expression": {
                                                                                "id": 6928,
                                                                                "name": "msg",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": -15,
                                                                                "src": "9283:3:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_magic_message",
                                                                                    "typeString": "msg"
                                                                                }
                                                                            },
                                                                            "id": 6929,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "sender",
                                                                            "nodeType": "MemberAccess",
                                                                            "src": "9283:10:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address_payable",
                                                                                "typeString": "address payable"
                                                                            }
                                                                        },
                                                                        {
                                                                            "id": 6930,
                                                                            "name": "owned",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6796,
                                                                            "src": "9295:5:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        {
                                                                            "id": 6931,
                                                                            "name": "isin",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6798,
                                                                            "src": "9302:4:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        {
                                                                            "id": 6932,
                                                                            "name": "offered",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6800,
                                                                            "src": "9308:7:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "id": 6933,
                                                                            "name": "tomatch",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6802,
                                                                            "src": "9317:7:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        {
                                                                            "id": 6934,
                                                                            "name": "desired",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6804,
                                                                            "src": "9326:7:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "id": 6935,
                                                                            "name": "min",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6806,
                                                                            "src": "9335:3:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "id": 6936,
                                                                            "name": "docs",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6810,
                                                                            "src": "9340:4:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                                "typeString": "string memory"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address_payable",
                                                                                "typeString": "address payable"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                                "typeString": "string memory"
                                                                            }
                                                                        ],
                                                                        "id": 6927,
                                                                        "name": "make",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7082,
                                                                        "src": "9278:4:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                                                                            "typeString": "function (address,address,bytes32,uint256,address,uint256,uint256,string memory)"
                                                                        }
                                                                    },
                                                                    "id": 6937,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "9278:67:18",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_tuple$__$",
                                                                        "typeString": "tuple()"
                                                                    }
                                                                },
                                                                "id": 6938,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "9278:67:18"
                                                            }
                                                        ]
                                                    }
                                                },
                                                "id": 6941,
                                                "nodeType": "IfStatement",
                                                "src": "8756:605:18",
                                                "trueBody": {
                                                    "id": 6904,
                                                    "nodeType": "Block",
                                                    "src": "8880:233:18",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "id": 6890,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "baseExpression": {
                                                                        "baseExpression": {
                                                                            "id": 6874,
                                                                            "name": "LPTokenAllotted",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6598,
                                                                            "src": "8916:15:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                "typeString": "mapping(address => mapping(address => uint256))"
                                                                            }
                                                                        },
                                                                        "id": 6878,
                                                                        "indexExpression": {
                                                                            "expression": {
                                                                                "id": 6875,
                                                                                "name": "msg",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": -15,
                                                                                "src": "8932:3:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_magic_message",
                                                                                    "typeString": "msg"
                                                                                }
                                                                            },
                                                                            "id": 6876,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "sender",
                                                                            "nodeType": "MemberAccess",
                                                                            "src": "8932:10:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address_payable",
                                                                                "typeString": "address payable"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "8916:27:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                            "typeString": "mapping(address => uint256)"
                                                                        }
                                                                    },
                                                                    "id": 6879,
                                                                    "indexExpression": {
                                                                        "id": 6877,
                                                                        "name": "owned",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6796,
                                                                        "src": "8944:5:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "8916:34:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "arguments": [
                                                                        {
                                                                            "baseExpression": {
                                                                                "baseExpression": {
                                                                                    "id": 6882,
                                                                                    "name": "LPTokenAllotted",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 6598,
                                                                                    "src": "8966:15:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                        "typeString": "mapping(address => mapping(address => uint256))"
                                                                                    }
                                                                                },
                                                                                "id": 6885,
                                                                                "indexExpression": {
                                                                                    "expression": {
                                                                                        "id": 6883,
                                                                                        "name": "msg",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": -15,
                                                                                        "src": "8982:3:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_magic_message",
                                                                                            "typeString": "msg"
                                                                                        }
                                                                                    },
                                                                                    "id": 6884,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "sender",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "src": "8982:10:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address_payable",
                                                                                        "typeString": "address payable"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "8966:27:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                                    "typeString": "mapping(address => uint256)"
                                                                                }
                                                                            },
                                                                            "id": 6887,
                                                                            "indexExpression": {
                                                                                "id": 6886,
                                                                                "name": "owned",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 6796,
                                                                                "src": "8994:5:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "8966:34:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        {
                                                                            "id": 6888,
                                                                            "name": "offered",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6800,
                                                                            "src": "9002:7:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "id": 6880,
                                                                            "name": "SafeMath",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 3123,
                                                                            "src": "8953:8:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_SafeMath_$3123_$",
                                                                                "typeString": "type(library SafeMath)"
                                                                            }
                                                                        },
                                                                        "id": 6881,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "sub",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 3094,
                                                                        "src": "8953:12:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                        }
                                                                    },
                                                                    "id": 6889,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "functionCall",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "8953:57:18",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "8916:94:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 6891,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "8916:94:18"
                                                        },
                                                        {
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "expression": {
                                                                            "id": 6893,
                                                                            "name": "msg",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": -15,
                                                                            "src": "9034:3:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_magic_message",
                                                                                "typeString": "msg"
                                                                            }
                                                                        },
                                                                        "id": 6894,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "sender",
                                                                        "nodeType": "MemberAccess",
                                                                        "src": "9034:10:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 6895,
                                                                        "name": "owned",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6796,
                                                                        "src": "9046:5:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 6896,
                                                                        "name": "isin",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6798,
                                                                        "src": "9053:4:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 6897,
                                                                        "name": "offered",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6800,
                                                                        "src": "9059:7:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 6898,
                                                                        "name": "tomatch",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6802,
                                                                        "src": "9068:7:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 6899,
                                                                        "name": "desired",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6804,
                                                                        "src": "9077:7:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 6900,
                                                                        "name": "min",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6806,
                                                                        "src": "9086:3:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 6901,
                                                                        "name": "docs",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6810,
                                                                        "src": "9091:4:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                            "typeString": "string memory"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address_payable",
                                                                            "typeString": "address payable"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                            "typeString": "string memory"
                                                                        }
                                                                    ],
                                                                    "id": 6892,
                                                                    "name": "make",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7082,
                                                                    "src": "9029:4:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                                                                        "typeString": "function (address,address,bytes32,uint256,address,uint256,uint256,string memory)"
                                                                    }
                                                                },
                                                                "id": 6902,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "9029:67:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 6903,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "9029:67:18"
                                                        }
                                                    ]
                                                }
                                            },
                                            {
                                                "eventCall": {
                                                    "arguments": [
                                                        {
                                                            "expression": {
                                                                "id": 6943,
                                                                "name": "msg",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": -15,
                                                                "src": "9387:3:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_magic_message",
                                                                    "typeString": "msg"
                                                                }
                                                            },
                                                            "id": 6944,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "sender",
                                                            "nodeType": "MemberAccess",
                                                            "src": "9387:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        {
                                                            "id": 6945,
                                                            "name": "owned",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6796,
                                                            "src": "9399:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 6946,
                                                            "name": "offered",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6800,
                                                            "src": "9406:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 6947,
                                                            "name": "tomatch",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6802,
                                                            "src": "9415:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 6948,
                                                            "name": "desired",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6804,
                                                            "src": "9424:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 6949,
                                                            "name": "min",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6806,
                                                            "src": "9433:3:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 6950,
                                                            "name": "isin",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6798,
                                                            "src": "9438:4:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "hexValue": "31653138",
                                                            "id": 6951,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "9444:4:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                "typeString": "int_const 1000000000000000000"
                                                            },
                                                            "value": "1e18"
                                                        },
                                                        {
                                                            "id": 6952,
                                                            "name": "docs",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6810,
                                                            "src": "9450:4:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                "typeString": "int_const 1000000000000000000"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_memory_ptr",
                                                                "typeString": "string memory"
                                                            }
                                                        ],
                                                        "id": 6942,
                                                        "name": "offers",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6664,
                                                        "src": "9380:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$",
                                                            "typeString": "function (address,address,uint256,address,uint256,uint256,bytes32,uint256,string memory)"
                                                        }
                                                    },
                                                    "id": 6953,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "9380:75:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 6954,
                                                "nodeType": "EmitStatement",
                                                "src": "9375:80:18"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "id": 6992,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 6990,
                                            "name": "lock",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6416,
                                            "src": "9708:4:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "hexValue": "66616c7365",
                                            "id": 6991,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "bool",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9715:5:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "value": "false"
                                        },
                                        "src": "9708:12:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 6993,
                                    "nodeType": "ExpressionStatement",
                                    "src": "9708:12:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 6794,
                            "nodeType": "StructuredDocumentation",
                            "src": "7649:695:18",
                            "text": "Called by market maker and issuer for adding liquidity\n@param  owned       is the security or settlement token on offer \n@param  offered     is the amount offered\n@param  tomatch     is the liquidity token that is required to be paired\n@param  desired     is the amount required of the liquidity token to be paired\n@param  min         is the minimum amount to be swapped of the 'offered' token \n@param  isin        is the identifier for the security token offered\n@param  owner       is the current holder of the owned token that is offered\n@param  docs        is the ipfs address of the offering docs"
                        },
                        "functionSelector": "f3ea66ff",
                        "id": 6995,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "offer",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 6812,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "8485:8:18"
                        },
                        "parameters": {
                            "id": 6811,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6796,
                                    "mutability": "mutable",
                                    "name": "owned",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6995,
                                    "src": "8366:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6795,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8366:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6798,
                                    "mutability": "mutable",
                                    "name": "isin",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6995,
                                    "src": "8381:12:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6797,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8381:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6800,
                                    "mutability": "mutable",
                                    "name": "offered",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6995,
                                    "src": "8395:12:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6799,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8395:4:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6802,
                                    "mutability": "mutable",
                                    "name": "tomatch",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6995,
                                    "src": "8409:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6801,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8409:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6804,
                                    "mutability": "mutable",
                                    "name": "desired",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6995,
                                    "src": "8426:12:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6803,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8426:4:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6806,
                                    "mutability": "mutable",
                                    "name": "min",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6995,
                                    "src": "8440:8:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 6805,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8440:4:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6808,
                                    "mutability": "mutable",
                                    "name": "owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6995,
                                    "src": "8450:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6807,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8450:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6810,
                                    "mutability": "mutable",
                                    "name": "docs",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6995,
                                    "src": "8465:18:18",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6809,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8465:6:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "8365:119:18"
                        },
                        "returnParameters": {
                            "id": 6813,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "8503:0:18"
                        },
                        "scope": 9283,
                        "src": "8351:1377:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 7081,
                            "nodeType": "Block",
                            "src": "9883:703:18",
                            "statements": [
                                {
                                    "assignments": [
                                        7017
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7017,
                                            "mutability": "mutable",
                                            "name": "t",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7081,
                                            "src": "9894:27:18",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_token_$11675_memory_ptr",
                                                "typeString": "struct IMarketMaker.token"
                                            },
                                            "typeName": {
                                                "id": 7016,
                                                "name": "IMarketMaker.token",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 11675,
                                                "src": "9894:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                    "typeString": "struct IMarketMaker.token"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7029,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 7020,
                                                "name": "_owner",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6997,
                                                "src": "9965:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 7021,
                                                "name": "owned",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6999,
                                                "src": "9995:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 7022,
                                                "name": "_desired",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7007,
                                                "src": "10030:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 7023,
                                                "name": "_offered",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7003,
                                                "src": "10068:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 7024,
                                                "name": "_min",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7009,
                                                "src": "10096:4:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 7025,
                                                "name": "_isin",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7001,
                                                "src": "10121:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "hexValue": "31653138",
                                                "id": 7026,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "10159:4:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                    "typeString": "int_const 1000000000000000000"
                                                },
                                                "value": "1e18"
                                            },
                                            {
                                                "id": 7027,
                                                "name": "_docs",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7011,
                                                "src": "10192:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                    "typeString": "int_const 1000000000000000000"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_memory_ptr",
                                                    "typeString": "string memory"
                                                }
                                            ],
                                            "expression": {
                                                "id": 7018,
                                                "name": "IMarketMaker",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 11881,
                                                "src": "9924:12:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_IMarketMaker_$11881_$",
                                                    "typeString": "type(contract IMarketMaker)"
                                                }
                                            },
                                            "id": 7019,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "token",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11675,
                                            "src": "9924:18:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_struct$_token_$11675_storage_ptr_$",
                                                "typeString": "type(struct IMarketMaker.token storage pointer)"
                                            }
                                        },
                                        "id": 7028,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "structConstructorCall",
                                        "lValueRequested": false,
                                        "names": [
                                            "owner",
                                            "offered",
                                            "amountDesired",
                                            "amountOffered",
                                            "min",
                                            "isin",
                                            "minimumOrderSize",
                                            "offeringdocs"
                                        ],
                                        "nodeType": "FunctionCall",
                                        "src": "9924:285:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_token_$11675_memory_ptr",
                                            "typeString": "struct IMarketMaker.token memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "9894:315:18"
                                },
                                {
                                    "assignments": [
                                        7031
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7031,
                                            "mutability": "mutable",
                                            "name": "index",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7081,
                                            "src": "10220:13:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 7030,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "10220:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7038,
                                    "initialValue": {
                                        "expression": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 7032,
                                                    "name": "mmtokens",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6531,
                                                    "src": "10236:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                        "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                    }
                                                },
                                                "id": 7034,
                                                "indexExpression": {
                                                    "id": 7033,
                                                    "name": "owned",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6999,
                                                    "src": "10245:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "10236:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                    "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                }
                                            },
                                            "id": 7036,
                                            "indexExpression": {
                                                "id": 7035,
                                                "name": "tomatch",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7005,
                                                "src": "10252:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10236:24:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                            }
                                        },
                                        "id": 7037,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "10236:31:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "10220:47:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 7045,
                                                "name": "t",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7017,
                                                "src": "10308:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_token_$11675_memory_ptr",
                                                    "typeString": "struct IMarketMaker.token memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_struct$_token_$11675_memory_ptr",
                                                    "typeString": "struct IMarketMaker.token memory"
                                                }
                                            ],
                                            "expression": {
                                                "baseExpression": {
                                                    "baseExpression": {
                                                        "id": 7039,
                                                        "name": "mmtokens",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6531,
                                                        "src": "10278:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                            "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                        }
                                                    },
                                                    "id": 7042,
                                                    "indexExpression": {
                                                        "id": 7040,
                                                        "name": "owned",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6999,
                                                        "src": "10287:5:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "10278:15:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                        "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                    }
                                                },
                                                "id": 7043,
                                                "indexExpression": {
                                                    "id": 7041,
                                                    "name": "tomatch",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 7005,
                                                    "src": "10294:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "10278:24:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                    "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                }
                                            },
                                            "id": 7044,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "src": "10278:29:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_token_$11675_storage_$returns$__$",
                                                "typeString": "function (struct IMarketMaker.token storage ref)"
                                            }
                                        },
                                        "id": 7046,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10278:32:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 7047,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10278:32:18"
                                },
                                {
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 7052,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "baseExpression": {
                                                "id": 7048,
                                                "name": "offeredTokenIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6519,
                                                "src": "10332:17:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 7050,
                                            "indexExpression": {
                                                "id": 7049,
                                                "name": "owned",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6999,
                                                "src": "10350:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10332:24:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "hexValue": "30",
                                            "id": 7051,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10358:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "10332:27:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 7067,
                                    "nodeType": "IfStatement",
                                    "src": "10329:157:18",
                                    "trueBody": {
                                        "id": 7066,
                                        "nodeType": "Block",
                                        "src": "10360:126:18",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "id": 7056,
                                                            "name": "owned",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6999,
                                                            "src": "10406:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "id": 7053,
                                                            "name": "offeredTokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6515,
                                                            "src": "10387:13:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 7055,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "src": "10387:18:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                                                            "typeString": "function (address)"
                                                        }
                                                    },
                                                    "id": 7057,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "10387:25:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 7058,
                                                "nodeType": "ExpressionStatement",
                                                "src": "10387:25:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 7064,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "baseExpression": {
                                                            "id": 7059,
                                                            "name": "offeredTokenIndex",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6519,
                                                            "src": "10427:17:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 7061,
                                                        "indexExpression": {
                                                            "id": 7060,
                                                            "name": "owned",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6999,
                                                            "src": "10445:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "10427:24:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "expression": {
                                                            "id": 7062,
                                                            "name": "offeredTokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6515,
                                                            "src": "10454:13:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 7063,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "src": "10454:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "10427:47:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 7065,
                                                "nodeType": "ExpressionStatement",
                                                "src": "10427:47:18"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "baseExpression": {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 7072,
                                                            "name": "mmtokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6531,
                                                            "src": "10524:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                            }
                                                        },
                                                        "id": 7074,
                                                        "indexExpression": {
                                                            "id": 7073,
                                                            "name": "owned",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6999,
                                                            "src": "10533:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "10524:15:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                            "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                        }
                                                    },
                                                    "id": 7076,
                                                    "indexExpression": {
                                                        "id": 7075,
                                                        "name": "tomatch",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7005,
                                                        "src": "10540:7:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "10524:24:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                        "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                    }
                                                },
                                                "id": 7078,
                                                "indexExpression": {
                                                    "id": 7077,
                                                    "name": "index",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 7031,
                                                    "src": "10549:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "10524:31:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_token_$11675_storage",
                                                    "typeString": "struct IMarketMaker.token storage ref"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_struct$_token_$11675_storage",
                                                    "typeString": "struct IMarketMaker.token storage ref"
                                                }
                                            ],
                                            "expression": {
                                                "baseExpression": {
                                                    "id": 7068,
                                                    "name": "toMatchTokens",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6524,
                                                    "src": "10496:13:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                        "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                    }
                                                },
                                                "id": 7070,
                                                "indexExpression": {
                                                    "id": 7069,
                                                    "name": "tomatch",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 7005,
                                                    "src": "10510:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "10496:22:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                    "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                }
                                            },
                                            "id": 7071,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "src": "10496:27:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_token_$11675_storage_$returns$__$",
                                                "typeString": "function (struct IMarketMaker.token storage ref)"
                                            }
                                        },
                                        "id": 7079,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10496:60:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 7080,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10496:60:18"
                                }
                            ]
                        },
                        "id": 7082,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "make",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 7012,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6997,
                                    "mutability": "mutable",
                                    "name": "_owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7082,
                                    "src": "9750:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6996,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9750:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6999,
                                    "mutability": "mutable",
                                    "name": "owned",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7082,
                                    "src": "9766:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 6998,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9766:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7001,
                                    "mutability": "mutable",
                                    "name": "_isin",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7082,
                                    "src": "9781:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 7000,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9781:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7003,
                                    "mutability": "mutable",
                                    "name": "_offered",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7082,
                                    "src": "9796:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7002,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9796:4:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7005,
                                    "mutability": "mutable",
                                    "name": "tomatch",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7082,
                                    "src": "9811:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7004,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9811:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7007,
                                    "mutability": "mutable",
                                    "name": "_desired",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7082,
                                    "src": "9828:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7006,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9828:4:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7009,
                                    "mutability": "mutable",
                                    "name": "_min",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7082,
                                    "src": "9843:9:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7008,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9843:4:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7011,
                                    "mutability": "mutable",
                                    "name": "_docs",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7082,
                                    "src": "9854:19:18",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 7010,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "9854:6:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "9749:125:18"
                        },
                        "returnParameters": {
                            "id": 7013,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "9883:0:18"
                        },
                        "scope": 9283,
                        "src": "9736:850:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "private"
                    },
                    {
                        "baseFunctions": [
                            11744
                        ],
                        "body": {
                            "id": 7130,
                            "nodeType": "Block",
                            "src": "10740:213:18",
                            "statements": [
                                {
                                    "assignments": [
                                        7102
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7102,
                                            "mutability": "mutable",
                                            "name": "t",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7130,
                                            "src": "10751:28:18",
                                            "stateVariable": false,
                                            "storageLocation": "storage",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                "typeString": "struct IMarketMaker.token"
                                            },
                                            "typeName": {
                                                "id": 7101,
                                                "name": "IMarketMaker.token",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 11675,
                                                "src": "10751:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                    "typeString": "struct IMarketMaker.token"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7110,
                                    "initialValue": {
                                        "baseExpression": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 7103,
                                                    "name": "mmtokens",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6531,
                                                    "src": "10782:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                        "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                    }
                                                },
                                                "id": 7105,
                                                "indexExpression": {
                                                    "id": 7104,
                                                    "name": "owned",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 7086,
                                                    "src": "10791:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "10782:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                    "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                }
                                            },
                                            "id": 7107,
                                            "indexExpression": {
                                                "id": 7106,
                                                "name": "tomatch",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7088,
                                                "src": "10798:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10782:24:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                            }
                                        },
                                        "id": 7109,
                                        "indexExpression": {
                                            "hexValue": "30",
                                            "id": 7108,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10807:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "10782:27:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_token_$11675_storage",
                                            "typeString": "struct IMarketMaker.token storage ref"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "10751:58:18"
                                },
                                {
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 7114,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "expression": {
                                                "id": 7111,
                                                "name": "t",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7102,
                                                "src": "10823:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                    "typeString": "struct IMarketMaker.token storage pointer"
                                                }
                                            },
                                            "id": 7112,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "owner",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11660,
                                            "src": "10823:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "id": 7113,
                                            "name": "owner",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7084,
                                            "src": "10832:5:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "10823:14:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 7129,
                                    "nodeType": "IfStatement",
                                    "src": "10820:126:18",
                                    "trueBody": {
                                        "id": 7128,
                                        "nodeType": "Block",
                                        "src": "10838:108:18",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "id": 7126,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "expression": {
                                                            "id": 7115,
                                                            "name": "t",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7102,
                                                            "src": "10853:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                                "typeString": "struct IMarketMaker.token storage pointer"
                                                            }
                                                        },
                                                        "id": 7117,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "minimumOrderSize",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 11672,
                                                        "src": "10853:18:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "arguments": [
                                                            {
                                                                "id": 7119,
                                                                "name": "minOrderSize",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7090,
                                                                "src": "10883:12:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "arguments": [
                                                                            {
                                                                                "id": 7122,
                                                                                "name": "owned",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 7086,
                                                                                "src": "10926:5:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "id": 7121,
                                                                            "name": "IERC20",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2938,
                                                                            "src": "10919:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                "typeString": "type(contract IERC20)"
                                                                            }
                                                                        },
                                                                        "id": 7123,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "10919:13:18",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    ],
                                                                    "id": 7120,
                                                                    "name": "_computeScalingFactor",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9248,
                                                                    "src": "10897:21:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 7124,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "10897:36:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "id": 7118,
                                                            "name": "_upscale",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9282,
                                                            "src": "10874:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 7125,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "10874:60:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "10853:81:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 7127,
                                                "nodeType": "ExpressionStatement",
                                                "src": "10853:81:18"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "functionSelector": "6c78c894",
                        "id": 7131,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 7094,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "10721:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 7095,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "10721:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "id": 7096,
                                        "name": "owned",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7086,
                                        "src": "10733:5:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 7097,
                                "modifierName": {
                                    "id": 7093,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6512,
                                    "src": "10704:16:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "10704:35:18"
                            }
                        ],
                        "name": "setOfferTerms",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7092,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "10686:8:18"
                        },
                        "parameters": {
                            "id": 7091,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7084,
                                    "mutability": "mutable",
                                    "name": "owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7131,
                                    "src": "10617:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7083,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10617:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7086,
                                    "mutability": "mutable",
                                    "name": "owned",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7131,
                                    "src": "10632:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7085,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10632:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7088,
                                    "mutability": "mutable",
                                    "name": "tomatch",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7131,
                                    "src": "10647:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7087,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10647:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7090,
                                    "mutability": "mutable",
                                    "name": "minOrderSize",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7131,
                                    "src": "10664:20:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7089,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10664:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "10616:69:18"
                        },
                        "returnParameters": {
                            "id": 7098,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "10740:0:18"
                        },
                        "scope": 9283,
                        "src": "10594:359:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11755
                        ],
                        "body": {
                            "id": 7173,
                            "nodeType": "Block",
                            "src": "11084:165:18",
                            "statements": [
                                {
                                    "assignments": [
                                        7150
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7150,
                                            "mutability": "mutable",
                                            "name": "t",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7173,
                                            "src": "11095:28:18",
                                            "stateVariable": false,
                                            "storageLocation": "storage",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                "typeString": "struct IMarketMaker.token"
                                            },
                                            "typeName": {
                                                "id": 7149,
                                                "name": "IMarketMaker.token",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 11675,
                                                "src": "11095:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                    "typeString": "struct IMarketMaker.token"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7158,
                                    "initialValue": {
                                        "baseExpression": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 7151,
                                                    "name": "mmtokens",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6531,
                                                    "src": "11126:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                        "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                    }
                                                },
                                                "id": 7153,
                                                "indexExpression": {
                                                    "id": 7152,
                                                    "name": "owned",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 7135,
                                                    "src": "11135:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "11126:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                    "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                }
                                            },
                                            "id": 7155,
                                            "indexExpression": {
                                                "id": 7154,
                                                "name": "tomatch",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7137,
                                                "src": "11142:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "11126:24:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                            }
                                        },
                                        "id": 7157,
                                        "indexExpression": {
                                            "hexValue": "30",
                                            "id": 7156,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "11151:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "11126:27:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_token_$11675_storage",
                                            "typeString": "struct IMarketMaker.token storage ref"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "11095:58:18"
                                },
                                {
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 7162,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "expression": {
                                                "id": 7159,
                                                "name": "t",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7150,
                                                "src": "11167:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                    "typeString": "struct IMarketMaker.token storage pointer"
                                                }
                                            },
                                            "id": 7160,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "owner",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11660,
                                            "src": "11167:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "id": 7161,
                                            "name": "owner",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7133,
                                            "src": "11176:5:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "11167:14:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 7172,
                                    "nodeType": "IfStatement",
                                    "src": "11164:78:18",
                                    "trueBody": {
                                        "id": 7171,
                                        "nodeType": "Block",
                                        "src": "11182:60:18",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "id": 7169,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 7163,
                                                                "name": "customFee",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6608,
                                                                "src": "11197:9:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                    "typeString": "mapping(address => mapping(address => uint256))"
                                                                }
                                                            },
                                                            "id": 7166,
                                                            "indexExpression": {
                                                                "id": 7164,
                                                                "name": "owned",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7135,
                                                                "src": "11207:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "11197:16:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 7167,
                                                        "indexExpression": {
                                                            "id": 7165,
                                                            "name": "tomatch",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7137,
                                                            "src": "11214:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "11197:25:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "id": 7168,
                                                        "name": "swapfee",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7139,
                                                        "src": "11223:7:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "11197:33:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 7170,
                                                "nodeType": "ExpressionStatement",
                                                "src": "11197:33:18"
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "functionSelector": "b329620b",
                        "id": 7174,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 7143,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "11073:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 7144,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "11073:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 7145,
                                "modifierName": {
                                    "id": 7142,
                                    "name": "onlyDP",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6490,
                                    "src": "11066:6:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "11066:18:18"
                            }
                        ],
                        "name": "setIssuingFee",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7141,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "11048:8:18"
                        },
                        "parameters": {
                            "id": 7140,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7133,
                                    "mutability": "mutable",
                                    "name": "owner",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7174,
                                    "src": "10984:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7132,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10984:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7135,
                                    "mutability": "mutable",
                                    "name": "owned",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7174,
                                    "src": "10999:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7134,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10999:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7137,
                                    "mutability": "mutable",
                                    "name": "tomatch",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7174,
                                    "src": "11014:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7136,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11014:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7139,
                                    "mutability": "mutable",
                                    "name": "swapfee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7174,
                                    "src": "11031:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7138,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11031:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "10983:64:18"
                        },
                        "returnParameters": {
                            "id": 7146,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "11084:0:18"
                        },
                        "scope": 9283,
                        "src": "10961:288:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11764
                        ],
                        "body": {
                            "id": 7190,
                            "nodeType": "Block",
                            "src": "11355:55:18",
                            "statements": [
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "baseExpression": {
                                                "id": 7184,
                                                "name": "customFee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6608,
                                                "src": "11373:9:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                    "typeString": "mapping(address => mapping(address => uint256))"
                                                }
                                            },
                                            "id": 7186,
                                            "indexExpression": {
                                                "id": 7185,
                                                "name": "security",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7176,
                                                "src": "11383:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "11373:19:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 7188,
                                        "indexExpression": {
                                            "id": 7187,
                                            "name": "currency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7178,
                                            "src": "11393:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "11373:29:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 7183,
                                    "id": 7189,
                                    "nodeType": "Return",
                                    "src": "11366:36:18"
                                }
                            ]
                        },
                        "functionSelector": "9f2a0ccc",
                        "id": 7191,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getIssuingFee",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7180,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "11316:8:18"
                        },
                        "parameters": {
                            "id": 7179,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7176,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7191,
                                    "src": "11280:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7175,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11280:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7178,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7191,
                                    "src": "11298:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7177,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11298:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11279:36:18"
                        },
                        "returnParameters": {
                            "id": 7183,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7182,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7191,
                                    "src": "11347:7:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7181,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11347:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11346:9:18"
                        },
                        "scope": 9283,
                        "src": "11257:153:18",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11772
                        ],
                        "body": {
                            "id": 7209,
                            "nodeType": "Block",
                            "src": "11659:48:18",
                            "statements": [
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "id": 7205,
                                            "name": "toMatchTokens",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6524,
                                            "src": "11677:13:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                            }
                                        },
                                        "id": 7207,
                                        "indexExpression": {
                                            "id": 7206,
                                            "name": "offered",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7194,
                                            "src": "11691:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "11677:22:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                            "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 7204,
                                    "id": 7208,
                                    "nodeType": "Return",
                                    "src": "11670:29:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 7192,
                            "nodeType": "StructuredDocumentation",
                            "src": "11418:110:18",
                            "text": "Gets tokens to match for offered token\n@param  offered address of offered token"
                        },
                        "functionSelector": "9701bbc3",
                        "id": 7210,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 7198,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "11611:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 7199,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "11611:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 7200,
                                "modifierName": {
                                    "id": 7197,
                                    "name": "onlyAssetManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6470,
                                    "src": "11594:16:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "11594:28:18"
                            }
                        ],
                        "name": "getOffered",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7196,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "11571:8:18"
                        },
                        "parameters": {
                            "id": 7195,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7194,
                                    "mutability": "mutable",
                                    "name": "offered",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7210,
                                    "src": "11554:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7193,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11554:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11553:17:18"
                        },
                        "returnParameters": {
                            "id": 7204,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7203,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7210,
                                    "src": "11631:27:18",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct IMarketMaker.token[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 7201,
                                            "name": "IMarketMaker.token",
                                            "nodeType": "UserDefinedTypeName",
                                            "referencedDeclaration": 11675,
                                            "src": "11631:18:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                "typeString": "struct IMarketMaker.token"
                                            }
                                        },
                                        "id": 7202,
                                        "nodeType": "ArrayTypeName",
                                        "src": "11631:20:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage_ptr",
                                            "typeString": "struct IMarketMaker.token[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11630:29:18"
                        },
                        "scope": 9283,
                        "src": "11534:173:18",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11868
                        ],
                        "body": {
                            "id": 7232,
                            "nodeType": "Block",
                            "src": "12022:52:18",
                            "statements": [
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "baseExpression": {
                                                "id": 7226,
                                                "name": "mmtokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6531,
                                                "src": "12040:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                    "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                }
                                            },
                                            "id": 7228,
                                            "indexExpression": {
                                                "id": 7227,
                                                "name": "_owned",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7213,
                                                "src": "12049:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "12040:16:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                            }
                                        },
                                        "id": 7230,
                                        "indexExpression": {
                                            "id": 7229,
                                            "name": "_tomatch",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7215,
                                            "src": "12057:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "12040:26:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                            "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 7225,
                                    "id": 7231,
                                    "nodeType": "Return",
                                    "src": "12033:33:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 7211,
                            "nodeType": "StructuredDocumentation",
                            "src": "11715:157:18",
                            "text": "Gets offer made previously\n@param  _owned      address of token offered\n@param  _tomatch    address of token to match"
                        },
                        "functionSelector": "f7efef10",
                        "id": 7233,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 7219,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "11974:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 7220,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "11974:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 7221,
                                "modifierName": {
                                    "id": 7218,
                                    "name": "onlyAssetManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6470,
                                    "src": "11957:16:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "11957:28:18"
                            }
                        ],
                        "name": "getOfferMade",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7217,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "11934:8:18"
                        },
                        "parameters": {
                            "id": 7216,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7213,
                                    "mutability": "mutable",
                                    "name": "_owned",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7233,
                                    "src": "11900:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7212,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11900:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7215,
                                    "mutability": "mutable",
                                    "name": "_tomatch",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7233,
                                    "src": "11916:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7214,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11916:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11899:34:18"
                        },
                        "returnParameters": {
                            "id": 7225,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7224,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7233,
                                    "src": "11994:27:18",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct IMarketMaker.token[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 7222,
                                            "name": "IMarketMaker.token",
                                            "nodeType": "UserDefinedTypeName",
                                            "referencedDeclaration": 11675,
                                            "src": "11994:18:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_token_$11675_storage_ptr",
                                                "typeString": "struct IMarketMaker.token"
                                            }
                                        },
                                        "id": 7223,
                                        "nodeType": "ArrayTypeName",
                                        "src": "11994:20:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage_ptr",
                                            "typeString": "struct IMarketMaker.token[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11993:29:18"
                        },
                        "scope": 9283,
                        "src": "11878:196:18",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11842
                        ],
                        "body": {
                            "id": 7247,
                            "nodeType": "Block",
                            "src": "12322:63:18",
                            "statements": [
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "id": 7243,
                                            "name": "liquidityProviders",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6553,
                                            "src": "12348:18:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                            }
                                        },
                                        "id": 7245,
                                        "indexExpression": {
                                            "id": 7244,
                                            "name": "_security",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7236,
                                            "src": "12367:9:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "12348:29:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                            "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 7242,
                                    "id": 7246,
                                    "nodeType": "Return",
                                    "src": "12341:36:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 7234,
                            "nodeType": "StructuredDocumentation",
                            "src": "12082:141:18",
                            "text": "Fetches liquidity providers for a security token\n@param  _security   identifier for the security token offered"
                        },
                        "functionSelector": "88c4b6ee",
                        "id": 7248,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getLiquidityProviders",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7238,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "12279:8:18"
                        },
                        "parameters": {
                            "id": 7237,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7236,
                                    "mutability": "mutable",
                                    "name": "_security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7248,
                                    "src": "12260:17:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7235,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12260:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "12259:19:18"
                        },
                        "returnParameters": {
                            "id": 7242,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7241,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7248,
                                    "src": "12310:11:18",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_lp_$11695_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct IMarketMaker.lp[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 7239,
                                            "name": "lp",
                                            "nodeType": "UserDefinedTypeName",
                                            "referencedDeclaration": 11695,
                                            "src": "12310:2:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_lp_$11695_storage_ptr",
                                                "typeString": "struct IMarketMaker.lp"
                                            }
                                        },
                                        "id": 7240,
                                        "nodeType": "ArrayTypeName",
                                        "src": "12310:4:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage_ptr",
                                            "typeString": "struct IMarketMaker.lp[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "12309:13:18"
                        },
                        "scope": 9283,
                        "src": "12229:156:18",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11851
                        ],
                        "body": {
                            "id": 7279,
                            "nodeType": "Block",
                            "src": "12821:111:18",
                            "statements": [
                                {
                                    "expression": {
                                        "id": 7277,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 7263,
                                                    "name": "LPTokenAllotted",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6598,
                                                    "src": "12832:15:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                        "typeString": "mapping(address => mapping(address => uint256))"
                                                    }
                                                },
                                                "id": 7266,
                                                "indexExpression": {
                                                    "id": 7264,
                                                    "name": "_manager",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 7255,
                                                    "src": "12848:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "12832:25:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 7267,
                                            "indexExpression": {
                                                "id": 7265,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7253,
                                                "src": "12858:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "12832:33:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 7270,
                                                            "name": "LPTokenAllotted",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6598,
                                                            "src": "12881:15:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                "typeString": "mapping(address => mapping(address => uint256))"
                                                            }
                                                        },
                                                        "id": 7272,
                                                        "indexExpression": {
                                                            "id": 7271,
                                                            "name": "_manager",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7255,
                                                            "src": "12897:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "12881:25:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 7274,
                                                    "indexExpression": {
                                                        "id": 7273,
                                                        "name": "_token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7253,
                                                        "src": "12907:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "12881:33:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "id": 7275,
                                                    "name": "_amount",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 7251,
                                                    "src": "12916:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 7268,
                                                    "name": "SafeMath",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3123,
                                                    "src": "12868:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_SafeMath_$3123_$",
                                                        "typeString": "type(library SafeMath)"
                                                    }
                                                },
                                                "id": 7269,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "add",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 3076,
                                                "src": "12868:12:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 7276,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "12868:56:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "12832:92:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 7278,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12832:92:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 7249,
                            "nodeType": "StructuredDocumentation",
                            "src": "12393:319:18",
                            "text": "Called by Liquidity token contract to stake tokens by investors\n@param  _amount     amount of tokens staked to provide liquidity for underwriting investments in tokenized securities\n@param  _token      address of token staked\n@param  _manager    address of asset manager"
                        },
                        "functionSelector": "a7d545db",
                        "id": 7280,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 7259,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "12809:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 7260,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "12809:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 7261,
                                "modifierName": {
                                    "id": 7258,
                                    "name": "onlyLP",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6446,
                                    "src": "12802:6:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "12802:18:18"
                            }
                        ],
                        "name": "stake",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7257,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "12784:8:18"
                        },
                        "parameters": {
                            "id": 7256,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7251,
                                    "mutability": "mutable",
                                    "name": "_amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7280,
                                    "src": "12733:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7250,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12733:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7253,
                                    "mutability": "mutable",
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7280,
                                    "src": "12750:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7252,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12750:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7255,
                                    "mutability": "mutable",
                                    "name": "_manager",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7280,
                                    "src": "12766:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7254,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12766:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "12732:51:18"
                        },
                        "returnParameters": {
                            "id": 7262,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "12821:0:18"
                        },
                        "scope": 9283,
                        "src": "12718:214:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11858
                        ],
                        "body": {
                            "id": 7296,
                            "nodeType": "Block",
                            "src": "13200:61:18",
                            "statements": [
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "baseExpression": {
                                                "id": 7289,
                                                "name": "LPTokenAllotted",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6598,
                                                "src": "13218:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                    "typeString": "mapping(address => mapping(address => uint256))"
                                                }
                                            },
                                            "id": 7292,
                                            "indexExpression": {
                                                "expression": {
                                                    "id": 7290,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -15,
                                                    "src": "13234:3:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 7291,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "src": "13234:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "13218:27:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 7294,
                                        "indexExpression": {
                                            "id": 7293,
                                            "name": "_token",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7283,
                                            "src": "13246:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "13218:35:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 7288,
                                    "id": 7295,
                                    "nodeType": "Return",
                                    "src": "13211:42:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 7281,
                            "nodeType": "StructuredDocumentation",
                            "src": "12940:174:18",
                            "text": "Gets liquidity allotted for asset manager (message sender)\n@param  _token  address of token allocated earlier to asset manager (message sender)"
                        },
                        "functionSelector": "59d3b2cd",
                        "id": 7297,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getAllotedStake",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7285,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "13161:8:18"
                        },
                        "parameters": {
                            "id": 7284,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7283,
                                    "mutability": "mutable",
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7297,
                                    "src": "13145:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7282,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13145:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "13144:16:18"
                        },
                        "returnParameters": {
                            "id": 7288,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7287,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7297,
                                    "src": "13192:7:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7286,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13192:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "13191:9:18"
                        },
                        "scope": 9283,
                        "src": "13120:141:18",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11781
                        ],
                        "body": {
                            "id": 7318,
                            "nodeType": "Block",
                            "src": "13641:56:18",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 7313,
                                                "name": "security",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7300,
                                                "src": "13660:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 7314,
                                                "name": "cutoffTime",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7302,
                                                "src": "13670:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 7315,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7304,
                                                "src": "13682:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 7312,
                                            "name": "onIssue",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7664,
                                            "src": "13652:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$",
                                                "typeString": "function (address,uint256,address)"
                                            }
                                        },
                                        "id": 7316,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "13652:37:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 7317,
                                    "nodeType": "ExpressionStatement",
                                    "src": "13652:37:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 7298,
                            "nodeType": "StructuredDocumentation",
                            "src": "13277:252:18",
                            "text": "Called by issuer of 'security' token to open an issue which will last till 'cutoffTime'\n@param  security    security offered to the primary issue pool\n@param  cutoffTime  time in milliseconds by when offer closes"
                        },
                        "functionSelector": "6d78f47a",
                        "id": 7319,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 7308,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "13629:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 7309,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "13629:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 7310,
                                "modifierName": {
                                    "id": 7307,
                                    "name": "onlyDP",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6490,
                                    "src": "13622:6:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "13622:18:18"
                            }
                        ],
                        "name": "issue",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7306,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "13604:8:18"
                        },
                        "parameters": {
                            "id": 7305,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7300,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7319,
                                    "src": "13550:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7299,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13550:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7302,
                                    "mutability": "mutable",
                                    "name": "cutoffTime",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7319,
                                    "src": "13568:18:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7301,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13568:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7304,
                                    "mutability": "mutable",
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7319,
                                    "src": "13588:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7303,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13588:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "13549:54:18"
                        },
                        "returnParameters": {
                            "id": 7311,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "13641:0:18"
                        },
                        "scope": 9283,
                        "src": "13535:162:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 7663,
                            "nodeType": "Block",
                            "src": "13788:5601:18",
                            "statements": [
                                {
                                    "assignments": [
                                        7329
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7329,
                                            "mutability": "mutable",
                                            "name": "marketmaker",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7663,
                                            "src": "13920:19:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 7328,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "13920:7:18",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7330,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "13920:19:18"
                                },
                                {
                                    "assignments": [
                                        7332
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7332,
                                            "mutability": "mutable",
                                            "name": "matchedTokens",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7663,
                                            "src": "13950:21:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 7331,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "13950:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7333,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "13950:21:18"
                                },
                                {
                                    "assignments": [
                                        7335
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7335,
                                            "mutability": "mutable",
                                            "name": "cash",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7663,
                                            "src": "13982:12:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 7334,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "13982:7:18",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7336,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "13982:12:18"
                                },
                                {
                                    "assignments": [
                                        7338
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7338,
                                            "mutability": "mutable",
                                            "name": "securityOffered",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7663,
                                            "src": "14005:23:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 7337,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "14005:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7339,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "14005:23:18"
                                },
                                {
                                    "assignments": [
                                        7341
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7341,
                                            "mutability": "mutable",
                                            "name": "minCashDesired",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7663,
                                            "src": "14039:22:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 7340,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "14039:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7342,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "14039:22:18"
                                },
                                {
                                    "assignments": [
                                        7344
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7344,
                                            "mutability": "mutable",
                                            "name": "cashOffered",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7663,
                                            "src": "14072:19:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 7343,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "14072:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7345,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "14072:19:18"
                                },
                                {
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 7354,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "baseExpression": {
                                                "id": 7346,
                                                "name": "offeredTokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6515,
                                                "src": "14107:13:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                    "typeString": "address[] storage ref"
                                                }
                                            },
                                            "id": 7352,
                                            "indexExpression": {
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 7351,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "baseExpression": {
                                                        "id": 7347,
                                                        "name": "offeredTokenIndex",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6519,
                                                        "src": "14121:17:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 7349,
                                                    "indexExpression": {
                                                        "id": 7348,
                                                        "name": "security",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7321,
                                                        "src": "14139:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "14121:27:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "-",
                                                "rightExpression": {
                                                    "hexValue": "31",
                                                    "id": 7350,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "14149:1:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_1_by_1",
                                                        "typeString": "int_const 1"
                                                    },
                                                    "value": "1"
                                                },
                                                "src": "14121:29:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "14107:44:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "id": 7353,
                                            "name": "security",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7321,
                                            "src": "14153:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "14107:54:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 7662,
                                    "nodeType": "IfStatement",
                                    "src": "14104:5278:18",
                                    "trueBody": {
                                        "id": 7661,
                                        "nodeType": "Block",
                                        "src": "14162:5220:18",
                                        "statements": [
                                            {
                                                "body": {
                                                    "id": 7641,
                                                    "nodeType": "Block",
                                                    "src": "14314:4892:18",
                                                    "statements": [
                                                        {
                                                            "condition": {
                                                                "commonType": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                "id": 7370,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "baseExpression": {
                                                                        "id": 7366,
                                                                        "name": "offeredTokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6515,
                                                                        "src": "14354:13:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                            "typeString": "address[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 7368,
                                                                    "indexExpression": {
                                                                        "id": 7367,
                                                                        "name": "j",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7356,
                                                                        "src": "14368:1:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "14354:16:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": "!=",
                                                                "rightExpression": {
                                                                    "id": 7369,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7321,
                                                                    "src": "14372:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "src": "14354:26:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 7640,
                                                            "nodeType": "IfStatement",
                                                            "src": "14351:4840:18",
                                                            "trueBody": {
                                                                "id": 7639,
                                                                "nodeType": "Block",
                                                                "src": "14381:4810:18",
                                                                "statements": [
                                                                    {
                                                                        "expression": {
                                                                            "id": 7375,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "id": 7371,
                                                                                "name": "cash",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 7335,
                                                                                "src": "14424:4:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "baseExpression": {
                                                                                    "id": 7372,
                                                                                    "name": "offeredTokens",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 6515,
                                                                                    "src": "14431:13:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                        "typeString": "address[] storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 7374,
                                                                                "indexExpression": {
                                                                                    "id": 7373,
                                                                                    "name": "j",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 7356,
                                                                                    "src": "14445:1:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "14431:16:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            },
                                                                            "src": "14424:23:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "id": 7376,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "14424:23:18"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "id": 7384,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "id": 7377,
                                                                                "name": "matchedTokens",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 7332,
                                                                                "src": "14739:13:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "expression": {
                                                                                    "baseExpression": {
                                                                                        "baseExpression": {
                                                                                            "id": 7378,
                                                                                            "name": "mmtokens",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 6531,
                                                                                            "src": "14755:8:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                                            }
                                                                                        },
                                                                                        "id": 7380,
                                                                                        "indexExpression": {
                                                                                            "id": 7379,
                                                                                            "name": "cash",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 7335,
                                                                                            "src": "14764:4:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "nodeType": "IndexAccess",
                                                                                        "src": "14755:14:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                                            "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 7382,
                                                                                    "indexExpression": {
                                                                                        "id": 7381,
                                                                                        "name": "security",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 7321,
                                                                                        "src": "14770:8:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "14755:24:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                                                        "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 7383,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "length",
                                                                                "nodeType": "MemberAccess",
                                                                                "src": "14755:31:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "src": "14739:47:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "id": 7385,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "14739:47:18"
                                                                    },
                                                                    {
                                                                        "body": {
                                                                            "id": 7637,
                                                                            "nodeType": "Block",
                                                                            "src": "14848:4299:18",
                                                                            "statements": [
                                                                                {
                                                                                    "expression": {
                                                                                        "id": 7405,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftHandSide": {
                                                                                            "id": 7396,
                                                                                            "name": "securityOffered",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 7338,
                                                                                            "src": "14881:15:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "Assignment",
                                                                                        "operator": "=",
                                                                                        "rightHandSide": {
                                                                                            "expression": {
                                                                                                "baseExpression": {
                                                                                                    "baseExpression": {
                                                                                                        "baseExpression": {
                                                                                                            "id": 7397,
                                                                                                            "name": "mmtokens",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 6531,
                                                                                                            "src": "14899:8:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 7399,
                                                                                                        "indexExpression": {
                                                                                                            "id": 7398,
                                                                                                            "name": "security",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 7321,
                                                                                                            "src": "14908:8:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "14899:18:18",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                                                            "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 7401,
                                                                                                    "indexExpression": {
                                                                                                        "id": 7400,
                                                                                                        "name": "cash",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 7335,
                                                                                                        "src": "14918:4:18",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "14899:24:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                                                                        "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 7403,
                                                                                                "indexExpression": {
                                                                                                    "hexValue": "30",
                                                                                                    "id": 7402,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "kind": "number",
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "Literal",
                                                                                                    "src": "14924:1:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                                                        "typeString": "int_const 0"
                                                                                                    },
                                                                                                    "value": "0"
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "14899:27:18",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_token_$11675_storage",
                                                                                                    "typeString": "struct IMarketMaker.token storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 7404,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "amountOffered",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 11664,
                                                                                            "src": "14899:41:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "src": "14881:59:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "id": 7406,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "14881:59:18"
                                                                                },
                                                                                {
                                                                                    "expression": {
                                                                                        "id": 7416,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftHandSide": {
                                                                                            "id": 7407,
                                                                                            "name": "minCashDesired",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 7341,
                                                                                            "src": "14971:14:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "Assignment",
                                                                                        "operator": "=",
                                                                                        "rightHandSide": {
                                                                                            "expression": {
                                                                                                "baseExpression": {
                                                                                                    "baseExpression": {
                                                                                                        "baseExpression": {
                                                                                                            "id": 7408,
                                                                                                            "name": "mmtokens",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 6531,
                                                                                                            "src": "14988:8:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 7410,
                                                                                                        "indexExpression": {
                                                                                                            "id": 7409,
                                                                                                            "name": "security",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 7321,
                                                                                                            "src": "14997:8:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "14988:18:18",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                                                            "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 7412,
                                                                                                    "indexExpression": {
                                                                                                        "id": 7411,
                                                                                                        "name": "cash",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 7335,
                                                                                                        "src": "15007:4:18",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "14988:24:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                                                                        "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 7414,
                                                                                                "indexExpression": {
                                                                                                    "hexValue": "30",
                                                                                                    "id": 7413,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "kind": "number",
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "Literal",
                                                                                                    "src": "15013:1:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                                                        "typeString": "int_const 0"
                                                                                                    },
                                                                                                    "value": "0"
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "14988:27:18",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_token_$11675_storage",
                                                                                                    "typeString": "struct IMarketMaker.token storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 7415,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "min",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 11668,
                                                                                            "src": "14988:31:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "src": "14971:48:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "id": 7417,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "14971:48:18"
                                                                                },
                                                                                {
                                                                                    "expression": {
                                                                                        "id": 7427,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftHandSide": {
                                                                                            "id": 7418,
                                                                                            "name": "cashOffered",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 7344,
                                                                                            "src": "15050:11:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "Assignment",
                                                                                        "operator": "=",
                                                                                        "rightHandSide": {
                                                                                            "expression": {
                                                                                                "baseExpression": {
                                                                                                    "baseExpression": {
                                                                                                        "baseExpression": {
                                                                                                            "id": 7419,
                                                                                                            "name": "mmtokens",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 6531,
                                                                                                            "src": "15064:8:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 7421,
                                                                                                        "indexExpression": {
                                                                                                            "id": 7420,
                                                                                                            "name": "cash",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 7335,
                                                                                                            "src": "15073:4:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "15064:14:18",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                                                            "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 7423,
                                                                                                    "indexExpression": {
                                                                                                        "id": 7422,
                                                                                                        "name": "security",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 7321,
                                                                                                        "src": "15079:8:18",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "15064:24:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                                                                        "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 7425,
                                                                                                "indexExpression": {
                                                                                                    "id": 7424,
                                                                                                    "name": "k",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 7387,
                                                                                                    "src": "15089:1:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "15064:27:18",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_token_$11675_storage",
                                                                                                    "typeString": "struct IMarketMaker.token storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 7426,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "amountOffered",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 11664,
                                                                                            "src": "15064:41:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "src": "15050:55:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "id": 7428,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "15050:55:18"
                                                                                },
                                                                                {
                                                                                    "expression": {
                                                                                        "id": 7438,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftHandSide": {
                                                                                            "id": 7429,
                                                                                            "name": "marketmaker",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 7329,
                                                                                            "src": "15136:11:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "Assignment",
                                                                                        "operator": "=",
                                                                                        "rightHandSide": {
                                                                                            "expression": {
                                                                                                "baseExpression": {
                                                                                                    "baseExpression": {
                                                                                                        "baseExpression": {
                                                                                                            "id": 7430,
                                                                                                            "name": "mmtokens",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 6531,
                                                                                                            "src": "15150:8:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                                                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 7432,
                                                                                                        "indexExpression": {
                                                                                                            "id": 7431,
                                                                                                            "name": "cash",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 7335,
                                                                                                            "src": "15159:4:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_address",
                                                                                                                "typeString": "address"
                                                                                                            }
                                                                                                        },
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": true,
                                                                                                        "isPure": false,
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "IndexAccess",
                                                                                                        "src": "15150:14:18",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                                                            "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 7434,
                                                                                                    "indexExpression": {
                                                                                                        "id": 7433,
                                                                                                        "name": "security",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 7321,
                                                                                                        "src": "15165:8:18",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "15150:24:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                                                                        "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 7436,
                                                                                                "indexExpression": {
                                                                                                    "id": 7435,
                                                                                                    "name": "k",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 7387,
                                                                                                    "src": "15175:1:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "15150:27:18",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_struct$_token_$11675_storage",
                                                                                                    "typeString": "struct IMarketMaker.token storage ref"
                                                                                                }
                                                                                            },
                                                                                            "id": 7437,
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "memberName": "owner",
                                                                                            "nodeType": "MemberAccess",
                                                                                            "referencedDeclaration": 11660,
                                                                                            "src": "15150:33:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_address",
                                                                                                "typeString": "address"
                                                                                            }
                                                                                        },
                                                                                        "src": "15136:47:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    },
                                                                                    "id": 7439,
                                                                                    "nodeType": "ExpressionStatement",
                                                                                    "src": "15136:47:18"
                                                                                },
                                                                                {
                                                                                    "condition": {
                                                                                        "commonType": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        "id": 7442,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftExpression": {
                                                                                            "id": 7440,
                                                                                            "name": "cashOffered",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 7344,
                                                                                            "src": "15329:11:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "BinaryOperation",
                                                                                        "operator": "!=",
                                                                                        "rightExpression": {
                                                                                            "hexValue": "30",
                                                                                            "id": 7441,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "kind": "number",
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "Literal",
                                                                                            "src": "15342:1:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                                                "typeString": "int_const 0"
                                                                                            },
                                                                                            "value": "0"
                                                                                        },
                                                                                        "src": "15329:14:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        }
                                                                                    },
                                                                                    "id": 7636,
                                                                                    "nodeType": "IfStatement",
                                                                                    "src": "15326:3794:18",
                                                                                    "trueBody": {
                                                                                        "id": 7635,
                                                                                        "nodeType": "Block",
                                                                                        "src": "15344:3776:18",
                                                                                        "statements": [
                                                                                            {
                                                                                                "condition": {
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "id": 7462,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "leftExpression": {
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "id": 7445,
                                                                                                                "name": "minCashDesired",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 7341,
                                                                                                                "src": "15549:14:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            {
                                                                                                                "id": 7446,
                                                                                                                "name": "securityOffered",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 7338,
                                                                                                                "src": "15602:15:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            {
                                                                                                                "hexValue": "74727565",
                                                                                                                "id": 7447,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": true,
                                                                                                                "kind": "bool",
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "Literal",
                                                                                                                "src": "15619:4:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                },
                                                                                                                "value": "true"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "id": 7443,
                                                                                                                "name": "Math",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 2367,
                                                                                                                "src": "15540:4:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                                                    "typeString": "type(library Math)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7444,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "div",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 2309,
                                                                                                            "src": "15540:8:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint256_$",
                                                                                                                "typeString": "function (uint256,uint256,bool) pure returns (uint256)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 7448,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "functionCall",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "15540:84:18",
                                                                                                        "tryCall": false,
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    "nodeType": "BinaryOperation",
                                                                                                    "operator": "<=",
                                                                                                    "rightExpression": {
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "id": 7451,
                                                                                                                "name": "cashOffered",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 7344,
                                                                                                                "src": "15674:11:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            {
                                                                                                                "expression": {
                                                                                                                    "baseExpression": {
                                                                                                                        "baseExpression": {
                                                                                                                            "baseExpression": {
                                                                                                                                "id": 7452,
                                                                                                                                "name": "mmtokens",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 6531,
                                                                                                                                "src": "15724:8:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                                                                                    "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7454,
                                                                                                                            "indexExpression": {
                                                                                                                                "id": 7453,
                                                                                                                                "name": "cash",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 7335,
                                                                                                                                "src": "15733:4:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "15724:14:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                                                                                "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7456,
                                                                                                                        "indexExpression": {
                                                                                                                            "id": 7455,
                                                                                                                            "name": "security",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                            "src": "15739:8:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                        "src": "15724:24:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                                                                                            "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7458,
                                                                                                                    "indexExpression": {
                                                                                                                        "id": 7457,
                                                                                                                        "name": "k",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7387,
                                                                                                                        "src": "15749:1:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "15724:27:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_struct$_token_$11675_storage",
                                                                                                                        "typeString": "struct IMarketMaker.token storage ref"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 7459,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": true,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "memberName": "amountDesired",
                                                                                                                "nodeType": "MemberAccess",
                                                                                                                "referencedDeclaration": 11666,
                                                                                                                "src": "15724:41:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            {
                                                                                                                "hexValue": "74727565",
                                                                                                                "id": 7460,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": true,
                                                                                                                "kind": "bool",
                                                                                                                "lValueRequested": false,
                                                                                                                "nodeType": "Literal",
                                                                                                                "src": "15767:4:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                },
                                                                                                                "value": "true"
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                }
                                                                                                            ],
                                                                                                            "expression": {
                                                                                                                "id": 7449,
                                                                                                                "name": "Math",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 2367,
                                                                                                                "src": "15665:4:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                                                    "typeString": "type(library Math)"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7450,
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "memberName": "div",
                                                                                                            "nodeType": "MemberAccess",
                                                                                                            "referencedDeclaration": 2309,
                                                                                                            "src": "15665:8:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint256_$",
                                                                                                                "typeString": "function (uint256,uint256,bool) pure returns (uint256)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 7461,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "functionCall",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "15665:107:18",
                                                                                                        "tryCall": false,
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    "src": "15540:232:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_bool",
                                                                                                        "typeString": "bool"
                                                                                                    }
                                                                                                },
                                                                                                "falseBody": {
                                                                                                    "id": 7633,
                                                                                                    "nodeType": "Block",
                                                                                                    "src": "18727:362:18",
                                                                                                    "statements": [
                                                                                                        {
                                                                                                            "expression": {
                                                                                                                "id": 7631,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "leftHandSide": {
                                                                                                                    "baseExpression": {
                                                                                                                        "baseExpression": {
                                                                                                                            "id": 7617,
                                                                                                                            "name": "LPTokenAllotted",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 6598,
                                                                                                                            "src": "18913:15:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                                                                "typeString": "mapping(address => mapping(address => uint256))"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7620,
                                                                                                                        "indexExpression": {
                                                                                                                            "id": 7618,
                                                                                                                            "name": "marketmaker",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7329,
                                                                                                                            "src": "18929:11:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                        "src": "18913:28:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                                                                            "typeString": "mapping(address => uint256)"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7621,
                                                                                                                    "indexExpression": {
                                                                                                                        "id": 7619,
                                                                                                                        "name": "cash",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7335,
                                                                                                                        "src": "18942:4:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": true,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "18913:34:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "nodeType": "Assignment",
                                                                                                                "operator": "=",
                                                                                                                "rightHandSide": {
                                                                                                                    "arguments": [
                                                                                                                        {
                                                                                                                            "baseExpression": {
                                                                                                                                "baseExpression": {
                                                                                                                                    "id": 7624,
                                                                                                                                    "name": "LPTokenAllotted",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 6598,
                                                                                                                                    "src": "19005:15:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                                                                        "typeString": "mapping(address => mapping(address => uint256))"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 7626,
                                                                                                                                "indexExpression": {
                                                                                                                                    "id": 7625,
                                                                                                                                    "name": "marketmaker",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 7329,
                                                                                                                                    "src": "19021:11:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "nodeType": "IndexAccess",
                                                                                                                                "src": "19005:28:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                                                                                    "typeString": "mapping(address => uint256)"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7628,
                                                                                                                            "indexExpression": {
                                                                                                                                "id": 7627,
                                                                                                                                "name": "cash",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 7335,
                                                                                                                                "src": "19034:4:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "19005:34:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "id": 7629,
                                                                                                                            "name": "cashOffered",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7344,
                                                                                                                            "src": "19041:11:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": [
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "expression": {
                                                                                                                            "id": 7622,
                                                                                                                            "name": "SafeMath",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 3123,
                                                                                                                            "src": "18992:8:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_type$_t_contract$_SafeMath_$3123_$",
                                                                                                                                "typeString": "type(library SafeMath)"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7623,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "add",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 3076,
                                                                                                                        "src": "18992:12:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7630,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "kind": "functionCall",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [],
                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                    "src": "18992:61:18",
                                                                                                                    "tryCall": false,
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "src": "18913:140:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7632,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "18913:140:18"
                                                                                                        }
                                                                                                    ]
                                                                                                },
                                                                                                "id": 7634,
                                                                                                "nodeType": "IfStatement",
                                                                                                "src": "15536:3553:18",
                                                                                                "trueBody": {
                                                                                                    "id": 7616,
                                                                                                    "nodeType": "Block",
                                                                                                    "src": "15807:2882:18",
                                                                                                    "statements": [
                                                                                                        {
                                                                                                            "condition": {
                                                                                                                "commonType": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                "id": 7469,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "leftExpression": {
                                                                                                                    "baseExpression": {
                                                                                                                        "baseExpression": {
                                                                                                                            "id": 7463,
                                                                                                                            "name": "pairedTokenIndex",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 6542,
                                                                                                                            "src": "15919:16:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                                                                "typeString": "mapping(address => mapping(address => uint256))"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7465,
                                                                                                                        "indexExpression": {
                                                                                                                            "id": 7464,
                                                                                                                            "name": "security",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                            "src": "15936:8:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                        "src": "15919:26:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                                                                            "typeString": "mapping(address => uint256)"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7467,
                                                                                                                    "indexExpression": {
                                                                                                                        "id": 7466,
                                                                                                                        "name": "cash",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7335,
                                                                                                                        "src": "15946:4:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "15919:32:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "nodeType": "BinaryOperation",
                                                                                                                "operator": "==",
                                                                                                                "rightExpression": {
                                                                                                                    "hexValue": "30",
                                                                                                                    "id": 7468,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "kind": "number",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "Literal",
                                                                                                                    "src": "15953:1:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                                                                        "typeString": "int_const 0"
                                                                                                                    },
                                                                                                                    "value": "0"
                                                                                                                },
                                                                                                                "src": "15919:35:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7489,
                                                                                                            "nodeType": "IfStatement",
                                                                                                            "src": "15916:306:18",
                                                                                                            "trueBody": {
                                                                                                                "id": 7488,
                                                                                                                "nodeType": "Block",
                                                                                                                "src": "15955:267:18",
                                                                                                                "statements": [
                                                                                                                    {
                                                                                                                        "expression": {
                                                                                                                            "arguments": [
                                                                                                                                {
                                                                                                                                    "id": 7474,
                                                                                                                                    "name": "cash",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                    "src": "16026:4:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "expression": {
                                                                                                                                "argumentTypes": [
                                                                                                                                    {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "expression": {
                                                                                                                                    "baseExpression": {
                                                                                                                                        "id": 7470,
                                                                                                                                        "name": "pairedTokens",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 6536,
                                                                                                                                        "src": "15998:12:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$",
                                                                                                                                            "typeString": "mapping(address => address[] storage ref)"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "id": 7472,
                                                                                                                                    "indexExpression": {
                                                                                                                                        "id": 7471,
                                                                                                                                        "name": "security",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 7321,
                                                                                                                                        "src": "16011:8:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                                    "src": "15998:22:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                                                        "typeString": "address[] storage ref"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 7473,
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": false,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "memberName": "push",
                                                                                                                                "nodeType": "MemberAccess",
                                                                                                                                "src": "15998:27:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                                                                                                                                    "typeString": "function (address)"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7475,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "kind": "functionCall",
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [],
                                                                                                                            "nodeType": "FunctionCall",
                                                                                                                            "src": "15998:33:18",
                                                                                                                            "tryCall": false,
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                                                "typeString": "tuple()"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7476,
                                                                                                                        "nodeType": "ExpressionStatement",
                                                                                                                        "src": "15998:33:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "expression": {
                                                                                                                            "id": 7486,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "leftHandSide": {
                                                                                                                                "baseExpression": {
                                                                                                                                    "baseExpression": {
                                                                                                                                        "id": 7477,
                                                                                                                                        "name": "pairedTokenIndex",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 6542,
                                                                                                                                        "src": "16074:16:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                                                                            "typeString": "mapping(address => mapping(address => uint256))"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "id": 7480,
                                                                                                                                    "indexExpression": {
                                                                                                                                        "id": 7478,
                                                                                                                                        "name": "security",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 7321,
                                                                                                                                        "src": "16091:8:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                                    "src": "16074:26:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                                                                                        "typeString": "mapping(address => uint256)"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 7481,
                                                                                                                                "indexExpression": {
                                                                                                                                    "id": 7479,
                                                                                                                                    "name": "cash",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                    "src": "16101:4:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": true,
                                                                                                                                "nodeType": "IndexAccess",
                                                                                                                                "src": "16074:32:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "nodeType": "Assignment",
                                                                                                                            "operator": "=",
                                                                                                                            "rightHandSide": {
                                                                                                                                "expression": {
                                                                                                                                    "baseExpression": {
                                                                                                                                        "id": 7482,
                                                                                                                                        "name": "pairedTokens",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 6536,
                                                                                                                                        "src": "16109:12:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$",
                                                                                                                                            "typeString": "mapping(address => address[] storage ref)"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "id": 7484,
                                                                                                                                    "indexExpression": {
                                                                                                                                        "id": 7483,
                                                                                                                                        "name": "security",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 7321,
                                                                                                                                        "src": "16122:8:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                                    "src": "16109:22:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                                                                                        "typeString": "address[] storage ref"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 7485,
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": false,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "memberName": "length",
                                                                                                                                "nodeType": "MemberAccess",
                                                                                                                                "src": "16109:29:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "src": "16074:64:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7487,
                                                                                                                        "nodeType": "ExpressionStatement",
                                                                                                                        "src": "16074:64:18"
                                                                                                                    }
                                                                                                                ]
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "condition": {
                                                                                                                "commonType": {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                },
                                                                                                                "id": 7511,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "leftExpression": {
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    },
                                                                                                                    "id": 7502,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "leftExpression": {
                                                                                                                        "arguments": [
                                                                                                                            {
                                                                                                                                "id": 7492,
                                                                                                                                "name": "minCashDesired",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 7341,
                                                                                                                                "src": "16393:14:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "id": 7493,
                                                                                                                                "name": "securityOffered",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 7338,
                                                                                                                                "src": "16450:15:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "hexValue": "74727565",
                                                                                                                                "id": 7494,
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": false,
                                                                                                                                "isPure": true,
                                                                                                                                "kind": "bool",
                                                                                                                                "lValueRequested": false,
                                                                                                                                "nodeType": "Literal",
                                                                                                                                "src": "16467:4:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                                    "typeString": "bool"
                                                                                                                                },
                                                                                                                                "value": "true"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "expression": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                                    "typeString": "bool"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "expression": {
                                                                                                                                "id": 7490,
                                                                                                                                "name": "Math",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 2367,
                                                                                                                                "src": "16384:4:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                                                                    "typeString": "type(library Math)"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7491,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "memberName": "div",
                                                                                                                            "nodeType": "MemberAccess",
                                                                                                                            "referencedDeclaration": 2309,
                                                                                                                            "src": "16384:8:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_uint256_$",
                                                                                                                                "typeString": "function (uint256,uint256,bool) pure returns (uint256)"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7495,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": false,
                                                                                                                        "kind": "functionCall",
                                                                                                                        "lValueRequested": false,
                                                                                                                        "names": [],
                                                                                                                        "nodeType": "FunctionCall",
                                                                                                                        "src": "16384:88:18",
                                                                                                                        "tryCall": false,
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "nodeType": "BinaryOperation",
                                                                                                                    "operator": "<",
                                                                                                                    "rightExpression": {
                                                                                                                        "expression": {
                                                                                                                            "baseExpression": {
                                                                                                                                "baseExpression": {
                                                                                                                                    "id": 7496,
                                                                                                                                    "name": "qlTokens",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 6548,
                                                                                                                                    "src": "16517:8:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                                                                                        "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 7498,
                                                                                                                                "indexExpression": {
                                                                                                                                    "id": 7497,
                                                                                                                                    "name": "security",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 7321,
                                                                                                                                    "src": "16526:8:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "nodeType": "IndexAccess",
                                                                                                                                "src": "16517:18:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                                                                                    "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7500,
                                                                                                                            "indexExpression": {
                                                                                                                                "id": 7499,
                                                                                                                                "name": "cash",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 7335,
                                                                                                                                "src": "16536:4:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "16517:24:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                                                                                                "typeString": "struct IMarketMaker.liquidity storage ref"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7501,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "minPrice",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 11677,
                                                                                                                        "src": "16517:33:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "src": "16384:166:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_bool",
                                                                                                                        "typeString": "bool"
                                                                                                                    }
                                                                                                                },
                                                                                                                "nodeType": "BinaryOperation",
                                                                                                                "operator": "||",
                                                                                                                "rightExpression": {
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    },
                                                                                                                    "id": 7510,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "leftExpression": {
                                                                                                                        "expression": {
                                                                                                                            "baseExpression": {
                                                                                                                                "baseExpression": {
                                                                                                                                    "id": 7503,
                                                                                                                                    "name": "qlTokens",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 6548,
                                                                                                                                    "src": "16597:8:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                                                                                        "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 7505,
                                                                                                                                "indexExpression": {
                                                                                                                                    "id": 7504,
                                                                                                                                    "name": "security",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 7321,
                                                                                                                                    "src": "16606:8:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "nodeType": "IndexAccess",
                                                                                                                                "src": "16597:18:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                                                                                    "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7507,
                                                                                                                            "indexExpression": {
                                                                                                                                "id": 7506,
                                                                                                                                "name": "cash",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 7335,
                                                                                                                                "src": "16616:4:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "16597:24:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                                                                                                "typeString": "struct IMarketMaker.liquidity storage ref"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7508,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "minPrice",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 11677,
                                                                                                                        "src": "16597:33:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "nodeType": "BinaryOperation",
                                                                                                                    "operator": "==",
                                                                                                                    "rightExpression": {
                                                                                                                        "hexValue": "30",
                                                                                                                        "id": 7509,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": true,
                                                                                                                        "kind": "number",
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "Literal",
                                                                                                                        "src": "16632:1:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                                                            "typeString": "int_const 0"
                                                                                                                        },
                                                                                                                        "value": "0"
                                                                                                                    },
                                                                                                                    "src": "16597:36:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_bool",
                                                                                                                        "typeString": "bool"
                                                                                                                    }
                                                                                                                },
                                                                                                                "src": "16384:249:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                    "typeString": "bool"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7540,
                                                                                                            "nodeType": "IfStatement",
                                                                                                            "src": "16381:660:18",
                                                                                                            "trueBody": {
                                                                                                                "id": 7539,
                                                                                                                "nodeType": "Block",
                                                                                                                "src": "16672:369:18",
                                                                                                                "statements": [
                                                                                                                    {
                                                                                                                        "expression": {
                                                                                                                            "id": 7537,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "leftHandSide": {
                                                                                                                                "expression": {
                                                                                                                                    "baseExpression": {
                                                                                                                                        "baseExpression": {
                                                                                                                                            "id": 7512,
                                                                                                                                            "name": "qlTokens",
                                                                                                                                            "nodeType": "Identifier",
                                                                                                                                            "overloadedDeclarations": [],
                                                                                                                                            "referencedDeclaration": 6548,
                                                                                                                                            "src": "16718:8:18",
                                                                                                                                            "typeDescriptions": {
                                                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                                                                                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                                                                                            }
                                                                                                                                        },
                                                                                                                                        "id": 7515,
                                                                                                                                        "indexExpression": {
                                                                                                                                            "id": 7513,
                                                                                                                                            "name": "security",
                                                                                                                                            "nodeType": "Identifier",
                                                                                                                                            "overloadedDeclarations": [],
                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                            "src": "16727:8:18",
                                                                                                                                            "typeDescriptions": {
                                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                                "typeString": "address"
                                                                                                                                            }
                                                                                                                                        },
                                                                                                                                        "isConstant": false,
                                                                                                                                        "isLValue": true,
                                                                                                                                        "isPure": false,
                                                                                                                                        "lValueRequested": false,
                                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                                        "src": "16718:18:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                                                                                            "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "id": 7516,
                                                                                                                                    "indexExpression": {
                                                                                                                                        "id": 7514,
                                                                                                                                        "name": "cash",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 7335,
                                                                                                                                        "src": "16737:4:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                                    "src": "16718:24:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                                                                                                        "typeString": "struct IMarketMaker.liquidity storage ref"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 7517,
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": true,
                                                                                                                                "memberName": "minPrice",
                                                                                                                                "nodeType": "MemberAccess",
                                                                                                                                "referencedDeclaration": 11677,
                                                                                                                                "src": "16718:33:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "nodeType": "Assignment",
                                                                                                                            "operator": "=",
                                                                                                                            "rightHandSide": {
                                                                                                                                "arguments": [
                                                                                                                                    {
                                                                                                                                        "arguments": [
                                                                                                                                            {
                                                                                                                                                "id": 7521,
                                                                                                                                                "name": "minCashDesired",
                                                                                                                                                "nodeType": "Identifier",
                                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                                "referencedDeclaration": 7341,
                                                                                                                                                "src": "16827:14:18",
                                                                                                                                                "typeDescriptions": {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "arguments": [
                                                                                                                                                    {
                                                                                                                                                        "arguments": [
                                                                                                                                                            {
                                                                                                                                                                "id": 7524,
                                                                                                                                                                "name": "cash",
                                                                                                                                                                "nodeType": "Identifier",
                                                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                                                "referencedDeclaration": 7335,
                                                                                                                                                                "src": "16872:4:18",
                                                                                                                                                                "typeDescriptions": {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                }
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "expression": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "id": 7523,
                                                                                                                                                            "name": "IERC20",
                                                                                                                                                            "nodeType": "Identifier",
                                                                                                                                                            "overloadedDeclarations": [],
                                                                                                                                                            "referencedDeclaration": 2938,
                                                                                                                                                            "src": "16865:6:18",
                                                                                                                                                            "typeDescriptions": {
                                                                                                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                                                                                                "typeString": "type(contract IERC20)"
                                                                                                                                                            }
                                                                                                                                                        },
                                                                                                                                                        "id": 7525,
                                                                                                                                                        "isConstant": false,
                                                                                                                                                        "isLValue": false,
                                                                                                                                                        "isPure": false,
                                                                                                                                                        "kind": "typeConversion",
                                                                                                                                                        "lValueRequested": false,
                                                                                                                                                        "names": [],
                                                                                                                                                        "nodeType": "FunctionCall",
                                                                                                                                                        "src": "16865:12:18",
                                                                                                                                                        "tryCall": false,
                                                                                                                                                        "typeDescriptions": {
                                                                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                                                                            "typeString": "contract IERC20"
                                                                                                                                                        }
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "expression": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                                                                            "typeString": "contract IERC20"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "id": 7522,
                                                                                                                                                    "name": "_computeScalingFactor",
                                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                                    "referencedDeclaration": 9248,
                                                                                                                                                    "src": "16843:21:18",
                                                                                                                                                    "typeDescriptions": {
                                                                                                                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                                                                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                                                                                                                    }
                                                                                                                                                },
                                                                                                                                                "id": 7526,
                                                                                                                                                "isConstant": false,
                                                                                                                                                "isLValue": false,
                                                                                                                                                "isPure": false,
                                                                                                                                                "kind": "functionCall",
                                                                                                                                                "lValueRequested": false,
                                                                                                                                                "names": [],
                                                                                                                                                "nodeType": "FunctionCall",
                                                                                                                                                "src": "16843:35:18",
                                                                                                                                                "tryCall": false,
                                                                                                                                                "typeDescriptions": {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "expression": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "id": 7520,
                                                                                                                                            "name": "_upscale",
                                                                                                                                            "nodeType": "Identifier",
                                                                                                                                            "overloadedDeclarations": [],
                                                                                                                                            "referencedDeclaration": 9282,
                                                                                                                                            "src": "16818:8:18",
                                                                                                                                            "typeDescriptions": {
                                                                                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                            }
                                                                                                                                        },
                                                                                                                                        "id": 7527,
                                                                                                                                        "isConstant": false,
                                                                                                                                        "isLValue": false,
                                                                                                                                        "isPure": false,
                                                                                                                                        "kind": "functionCall",
                                                                                                                                        "lValueRequested": false,
                                                                                                                                        "names": [],
                                                                                                                                        "nodeType": "FunctionCall",
                                                                                                                                        "src": "16818:61:18",
                                                                                                                                        "tryCall": false,
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "arguments": [
                                                                                                                                            {
                                                                                                                                                "id": 7529,
                                                                                                                                                "name": "securityOffered",
                                                                                                                                                "nodeType": "Identifier",
                                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                                "referencedDeclaration": 7338,
                                                                                                                                                "src": "16943:15:18",
                                                                                                                                                "typeDescriptions": {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "arguments": [
                                                                                                                                                    {
                                                                                                                                                        "arguments": [
                                                                                                                                                            {
                                                                                                                                                                "id": 7532,
                                                                                                                                                                "name": "security",
                                                                                                                                                                "nodeType": "Identifier",
                                                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                                                "referencedDeclaration": 7321,
                                                                                                                                                                "src": "16989:8:18",
                                                                                                                                                                "typeDescriptions": {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                }
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "expression": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "id": 7531,
                                                                                                                                                            "name": "IERC20",
                                                                                                                                                            "nodeType": "Identifier",
                                                                                                                                                            "overloadedDeclarations": [],
                                                                                                                                                            "referencedDeclaration": 2938,
                                                                                                                                                            "src": "16982:6:18",
                                                                                                                                                            "typeDescriptions": {
                                                                                                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                                                                                                "typeString": "type(contract IERC20)"
                                                                                                                                                            }
                                                                                                                                                        },
                                                                                                                                                        "id": 7533,
                                                                                                                                                        "isConstant": false,
                                                                                                                                                        "isLValue": false,
                                                                                                                                                        "isPure": false,
                                                                                                                                                        "kind": "typeConversion",
                                                                                                                                                        "lValueRequested": false,
                                                                                                                                                        "names": [],
                                                                                                                                                        "nodeType": "FunctionCall",
                                                                                                                                                        "src": "16982:16:18",
                                                                                                                                                        "tryCall": false,
                                                                                                                                                        "typeDescriptions": {
                                                                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                                                                            "typeString": "contract IERC20"
                                                                                                                                                        }
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "expression": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                                                                            "typeString": "contract IERC20"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "id": 7530,
                                                                                                                                                    "name": "_computeScalingFactor",
                                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                                    "referencedDeclaration": 9248,
                                                                                                                                                    "src": "16960:21:18",
                                                                                                                                                    "typeDescriptions": {
                                                                                                                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                                                                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                                                                                                                    }
                                                                                                                                                },
                                                                                                                                                "id": 7534,
                                                                                                                                                "isConstant": false,
                                                                                                                                                "isLValue": false,
                                                                                                                                                "isPure": false,
                                                                                                                                                "kind": "functionCall",
                                                                                                                                                "lValueRequested": false,
                                                                                                                                                "names": [],
                                                                                                                                                "nodeType": "FunctionCall",
                                                                                                                                                "src": "16960:39:18",
                                                                                                                                                "tryCall": false,
                                                                                                                                                "typeDescriptions": {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "expression": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                },
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "id": 7528,
                                                                                                                                            "name": "_upscale",
                                                                                                                                            "nodeType": "Identifier",
                                                                                                                                            "overloadedDeclarations": [],
                                                                                                                                            "referencedDeclaration": 9282,
                                                                                                                                            "src": "16934:8:18",
                                                                                                                                            "typeDescriptions": {
                                                                                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                            }
                                                                                                                                        },
                                                                                                                                        "id": 7535,
                                                                                                                                        "isConstant": false,
                                                                                                                                        "isLValue": false,
                                                                                                                                        "isPure": false,
                                                                                                                                        "kind": "functionCall",
                                                                                                                                        "lValueRequested": false,
                                                                                                                                        "names": [],
                                                                                                                                        "nodeType": "FunctionCall",
                                                                                                                                        "src": "16934:66:18",
                                                                                                                                        "tryCall": false,
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "expression": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        },
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                            "typeString": "uint256"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "expression": {
                                                                                                                                        "id": 7518,
                                                                                                                                        "name": "FixedPoint",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 780,
                                                                                                                                        "src": "16799:10:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                                                                                            "typeString": "type(library FixedPoint)"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "id": 7519,
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "memberName": "divDown",
                                                                                                                                    "nodeType": "MemberAccess",
                                                                                                                                    "referencedDeclaration": 631,
                                                                                                                                    "src": "16799:18:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 7536,
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": false,
                                                                                                                                "isPure": false,
                                                                                                                                "kind": "functionCall",
                                                                                                                                "lValueRequested": false,
                                                                                                                                "names": [],
                                                                                                                                "nodeType": "FunctionCall",
                                                                                                                                "src": "16799:202:18",
                                                                                                                                "tryCall": false,
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "src": "16718:283:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7538,
                                                                                                                        "nodeType": "ExpressionStatement",
                                                                                                                        "src": "16718:283:18"
                                                                                                                    }
                                                                                                                ]
                                                                                                            }
                                                                                                        },
                                                                                                        {
                                                                                                            "expression": {
                                                                                                                "id": 7548,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "leftHandSide": {
                                                                                                                    "expression": {
                                                                                                                        "baseExpression": {
                                                                                                                            "baseExpression": {
                                                                                                                                "id": 7541,
                                                                                                                                "name": "qlTokens",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 6548,
                                                                                                                                "src": "17154:8:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                                                                                    "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7544,
                                                                                                                            "indexExpression": {
                                                                                                                                "id": 7542,
                                                                                                                                "name": "security",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 7321,
                                                                                                                                "src": "17163:8:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "17154:18:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                                                                                "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7545,
                                                                                                                        "indexExpression": {
                                                                                                                            "id": 7543,
                                                                                                                            "name": "cash",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                            "src": "17173:4:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                        "src": "17154:24:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                                                                                            "typeString": "struct IMarketMaker.liquidity storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7546,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": true,
                                                                                                                    "memberName": "amountIssued",
                                                                                                                    "nodeType": "MemberAccess",
                                                                                                                    "referencedDeclaration": 11681,
                                                                                                                    "src": "17154:37:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "nodeType": "Assignment",
                                                                                                                "operator": "=",
                                                                                                                "rightHandSide": {
                                                                                                                    "id": 7547,
                                                                                                                    "name": "securityOffered",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 7338,
                                                                                                                    "src": "17351:15:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "src": "17154:212:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7549,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "17154:212:18"
                                                                                                        },
                                                                                                        {
                                                                                                            "expression": {
                                                                                                                "id": 7566,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "leftHandSide": {
                                                                                                                    "expression": {
                                                                                                                        "baseExpression": {
                                                                                                                            "baseExpression": {
                                                                                                                                "id": 7550,
                                                                                                                                "name": "qlTokens",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 6548,
                                                                                                                                "src": "17463:8:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                                                                                    "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7553,
                                                                                                                            "indexExpression": {
                                                                                                                                "id": 7551,
                                                                                                                                "name": "security",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 7321,
                                                                                                                                "src": "17472:8:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "17463:18:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                                                                                "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7554,
                                                                                                                        "indexExpression": {
                                                                                                                            "id": 7552,
                                                                                                                            "name": "cash",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                            "src": "17482:4:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                        "src": "17463:24:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                                                                                            "typeString": "struct IMarketMaker.liquidity storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7555,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": true,
                                                                                                                    "memberName": "amountOffered",
                                                                                                                    "nodeType": "MemberAccess",
                                                                                                                    "referencedDeclaration": 11683,
                                                                                                                    "src": "17463:38:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "nodeType": "Assignment",
                                                                                                                "operator": "=",
                                                                                                                "rightHandSide": {
                                                                                                                    "arguments": [
                                                                                                                        {
                                                                                                                            "expression": {
                                                                                                                                "baseExpression": {
                                                                                                                                    "baseExpression": {
                                                                                                                                        "id": 7558,
                                                                                                                                        "name": "qlTokens",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 6548,
                                                                                                                                        "src": "17567:8:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                                                                                            "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "id": 7560,
                                                                                                                                    "indexExpression": {
                                                                                                                                        "id": 7559,
                                                                                                                                        "name": "security",
                                                                                                                                        "nodeType": "Identifier",
                                                                                                                                        "overloadedDeclarations": [],
                                                                                                                                        "referencedDeclaration": 7321,
                                                                                                                                        "src": "17576:8:18",
                                                                                                                                        "typeDescriptions": {
                                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                                            "typeString": "address"
                                                                                                                                        }
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                                    "src": "17567:18:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                                                                                        "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "id": 7562,
                                                                                                                                "indexExpression": {
                                                                                                                                    "id": 7561,
                                                                                                                                    "name": "cash",
                                                                                                                                    "nodeType": "Identifier",
                                                                                                                                    "overloadedDeclarations": [],
                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                    "src": "17586:4:18",
                                                                                                                                    "typeDescriptions": {
                                                                                                                                        "typeIdentifier": "t_address",
                                                                                                                                        "typeString": "address"
                                                                                                                                    }
                                                                                                                                },
                                                                                                                                "isConstant": false,
                                                                                                                                "isLValue": true,
                                                                                                                                "isPure": false,
                                                                                                                                "lValueRequested": false,
                                                                                                                                "nodeType": "IndexAccess",
                                                                                                                                "src": "17567:24:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                                                                                                    "typeString": "struct IMarketMaker.liquidity storage ref"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7563,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "memberName": "amountOffered",
                                                                                                                            "nodeType": "MemberAccess",
                                                                                                                            "referencedDeclaration": 11683,
                                                                                                                            "src": "17567:38:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "id": 7564,
                                                                                                                            "name": "cashOffered",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7344,
                                                                                                                            "src": "17660:11:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": [
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "expression": {
                                                                                                                            "id": 7556,
                                                                                                                            "name": "Math",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 2367,
                                                                                                                            "src": "17558:4:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                                                                "typeString": "type(library Math)"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7557,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "add",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 2109,
                                                                                                                        "src": "17558:8:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7565,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "kind": "functionCall",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [],
                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                    "src": "17558:114:18",
                                                                                                                    "tryCall": false,
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "src": "17463:209:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7567,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "17463:209:18"
                                                                                                        },
                                                                                                        {
                                                                                                            "assignments": [
                                                                                                                7569
                                                                                                            ],
                                                                                                            "declarations": [
                                                                                                                {
                                                                                                                    "constant": false,
                                                                                                                    "id": 7569,
                                                                                                                    "mutability": "mutable",
                                                                                                                    "name": "provider",
                                                                                                                    "nodeType": "VariableDeclaration",
                                                                                                                    "scope": 7616,
                                                                                                                    "src": "17830:18:18",
                                                                                                                    "stateVariable": false,
                                                                                                                    "storageLocation": "memory",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_struct$_lp_$11695_memory_ptr",
                                                                                                                        "typeString": "struct IMarketMaker.lp"
                                                                                                                    },
                                                                                                                    "typeName": {
                                                                                                                        "id": 7568,
                                                                                                                        "name": "lp",
                                                                                                                        "nodeType": "UserDefinedTypeName",
                                                                                                                        "referencedDeclaration": 11695,
                                                                                                                        "src": "17830:2:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_struct$_lp_$11695_storage_ptr",
                                                                                                                            "typeString": "struct IMarketMaker.lp"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "visibility": "internal"
                                                                                                                }
                                                                                                            ],
                                                                                                            "id": 7577,
                                                                                                            "initialValue": {
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "id": 7571,
                                                                                                                        "name": "marketmaker",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7329,
                                                                                                                        "src": "17905:11:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "id": 7572,
                                                                                                                        "name": "cash",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7335,
                                                                                                                        "src": "17974:4:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "id": 7573,
                                                                                                                        "name": "cashOffered",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7344,
                                                                                                                        "src": "18036:11:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "hexValue": "30",
                                                                                                                        "id": 7574,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": true,
                                                                                                                        "kind": "number",
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "Literal",
                                                                                                                        "src": "18103:1:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                                                            "typeString": "int_const 0"
                                                                                                                        },
                                                                                                                        "value": "0"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "hexValue": "30",
                                                                                                                        "id": 7575,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": true,
                                                                                                                        "kind": "number",
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "Literal",
                                                                                                                        "src": "18156:1:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                                                            "typeString": "int_const 0"
                                                                                                                        },
                                                                                                                        "value": "0"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                                                            "typeString": "int_const 0"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                                                                            "typeString": "int_const 0"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "id": 7570,
                                                                                                                    "name": "lp",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 11695,
                                                                                                                    "src": "17851:2:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_type$_t_struct$_lp_$11695_storage_ptr_$",
                                                                                                                        "typeString": "type(struct IMarketMaker.lp storage pointer)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 7576,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "structConstructorCall",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [
                                                                                                                    "owner",
                                                                                                                    "tokenOffered",
                                                                                                                    "underwritten",
                                                                                                                    "subscribed",
                                                                                                                    "earned"
                                                                                                                ],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "17851:346:18",
                                                                                                                "tryCall": false,
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_struct$_lp_$11695_memory_ptr",
                                                                                                                    "typeString": "struct IMarketMaker.lp memory"
                                                                                                                }
                                                                                                            },
                                                                                                            "nodeType": "VariableDeclarationStatement",
                                                                                                            "src": "17830:367:18"
                                                                                                        },
                                                                                                        {
                                                                                                            "expression": {
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "id": 7582,
                                                                                                                        "name": "provider",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7569,
                                                                                                                        "src": "18270:8:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_struct$_lp_$11695_memory_ptr",
                                                                                                                            "typeString": "struct IMarketMaker.lp memory"
                                                                                                                        }
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_struct$_lp_$11695_memory_ptr",
                                                                                                                            "typeString": "struct IMarketMaker.lp memory"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "baseExpression": {
                                                                                                                            "id": 7578,
                                                                                                                            "name": "liquidityProviders",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 6553,
                                                                                                                            "src": "18236:18:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                                                                                                "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7580,
                                                                                                                        "indexExpression": {
                                                                                                                            "id": 7579,
                                                                                                                            "name": "security",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                            "src": "18255:8:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_address",
                                                                                                                                "typeString": "address"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "nodeType": "IndexAccess",
                                                                                                                        "src": "18236:28:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                                                                                            "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7581,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "memberName": "push",
                                                                                                                    "nodeType": "MemberAccess",
                                                                                                                    "src": "18236:33:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_lp_$11695_storage_$returns$__$",
                                                                                                                        "typeString": "function (struct IMarketMaker.lp storage ref)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 7583,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "functionCall",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "18236:43:18",
                                                                                                                "tryCall": false,
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                                                    "typeString": "tuple()"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7584,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "18236:43:18"
                                                                                                        },
                                                                                                        {
                                                                                                            "eventCall": {
                                                                                                                "arguments": [
                                                                                                                    {
                                                                                                                        "id": 7586,
                                                                                                                        "name": "security",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7321,
                                                                                                                        "src": "18338:8:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "arguments": [
                                                                                                                            {
                                                                                                                                "id": 7589,
                                                                                                                                "name": "this",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": -28,
                                                                                                                                "src": "18356:4:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                                                                    "typeString": "contract PrimaryIssueManager"
                                                                                                                                }
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "expression": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                                                                    "typeString": "contract PrimaryIssueManager"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "id": 7588,
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "ElementaryTypeNameExpression",
                                                                                                                            "src": "18348:7:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                                                                                "typeString": "type(address)"
                                                                                                                            },
                                                                                                                            "typeName": {
                                                                                                                                "id": 7587,
                                                                                                                                "name": "address",
                                                                                                                                "nodeType": "ElementaryTypeName",
                                                                                                                                "src": "18348:7:18",
                                                                                                                                "typeDescriptions": {}
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7590,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": false,
                                                                                                                        "kind": "typeConversion",
                                                                                                                        "lValueRequested": false,
                                                                                                                        "names": [],
                                                                                                                        "nodeType": "FunctionCall",
                                                                                                                        "src": "18348:13:18",
                                                                                                                        "tryCall": false,
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "id": 7591,
                                                                                                                        "name": "marketmaker",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7329,
                                                                                                                        "src": "18363:11:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "id": 7592,
                                                                                                                        "name": "cash",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7335,
                                                                                                                        "src": "18376:4:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "id": 7593,
                                                                                                                        "name": "cashOffered",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7344,
                                                                                                                        "src": "18382:11:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "expression": {
                                                                                                                            "id": 7594,
                                                                                                                            "name": "provider",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7569,
                                                                                                                            "src": "18395:8:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_struct$_lp_$11695_memory_ptr",
                                                                                                                                "typeString": "struct IMarketMaker.lp memory"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7595,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "subscribed",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 11692,
                                                                                                                        "src": "18395:19:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "expression": {
                                                                                                                            "id": 7596,
                                                                                                                            "name": "provider",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7569,
                                                                                                                            "src": "18416:8:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_struct$_lp_$11695_memory_ptr",
                                                                                                                                "typeString": "struct IMarketMaker.lp memory"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7597,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": true,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "earned",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 11694,
                                                                                                                        "src": "18416:15:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    }
                                                                                                                ],
                                                                                                                "expression": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "id": 7585,
                                                                                                                    "name": "marketmakers",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 6626,
                                                                                                                    "src": "18325:12:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                                                                                                                        "typeString": "function (address,address,address,address,uint256,uint256,uint256)"
                                                                                                                    }
                                                                                                                },
                                                                                                                "id": 7598,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "kind": "functionCall",
                                                                                                                "lValueRequested": false,
                                                                                                                "names": [],
                                                                                                                "nodeType": "FunctionCall",
                                                                                                                "src": "18325:107:18",
                                                                                                                "tryCall": false,
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_tuple$__$",
                                                                                                                    "typeString": "tuple()"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7599,
                                                                                                            "nodeType": "EmitStatement",
                                                                                                            "src": "18320:112:18"
                                                                                                        },
                                                                                                        {
                                                                                                            "expression": {
                                                                                                                "id": 7610,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "leftHandSide": {
                                                                                                                    "baseExpression": {
                                                                                                                        "id": 7600,
                                                                                                                        "name": "totalUnderwritten",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 6557,
                                                                                                                        "src": "18473:17:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                                                                            "typeString": "mapping(address => uint256)"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7602,
                                                                                                                    "indexExpression": {
                                                                                                                        "id": 7601,
                                                                                                                        "name": "security",
                                                                                                                        "nodeType": "Identifier",
                                                                                                                        "overloadedDeclarations": [],
                                                                                                                        "referencedDeclaration": 7321,
                                                                                                                        "src": "18491:8:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": true,
                                                                                                                    "nodeType": "IndexAccess",
                                                                                                                    "src": "18473:27:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "nodeType": "Assignment",
                                                                                                                "operator": "=",
                                                                                                                "rightHandSide": {
                                                                                                                    "arguments": [
                                                                                                                        {
                                                                                                                            "baseExpression": {
                                                                                                                                "id": 7605,
                                                                                                                                "name": "totalUnderwritten",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 6557,
                                                                                                                                "src": "18558:17:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                                                                                    "typeString": "mapping(address => uint256)"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "id": 7607,
                                                                                                                            "indexExpression": {
                                                                                                                                "id": 7606,
                                                                                                                                "name": "security",
                                                                                                                                "nodeType": "Identifier",
                                                                                                                                "overloadedDeclarations": [],
                                                                                                                                "referencedDeclaration": 7321,
                                                                                                                                "src": "18576:8:18",
                                                                                                                                "typeDescriptions": {
                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                    "typeString": "address"
                                                                                                                                }
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "nodeType": "IndexAccess",
                                                                                                                            "src": "18558:27:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "id": 7608,
                                                                                                                            "name": "cashOffered",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 7344,
                                                                                                                            "src": "18587:11:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "expression": {
                                                                                                                        "argumentTypes": [
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "expression": {
                                                                                                                            "id": 7603,
                                                                                                                            "name": "SafeMath",
                                                                                                                            "nodeType": "Identifier",
                                                                                                                            "overloadedDeclarations": [],
                                                                                                                            "referencedDeclaration": 3123,
                                                                                                                            "src": "18545:8:18",
                                                                                                                            "typeDescriptions": {
                                                                                                                                "typeIdentifier": "t_type$_t_contract$_SafeMath_$3123_$",
                                                                                                                                "typeString": "type(library SafeMath)"
                                                                                                                            }
                                                                                                                        },
                                                                                                                        "id": 7604,
                                                                                                                        "isConstant": false,
                                                                                                                        "isLValue": false,
                                                                                                                        "isPure": false,
                                                                                                                        "lValueRequested": false,
                                                                                                                        "memberName": "add",
                                                                                                                        "nodeType": "MemberAccess",
                                                                                                                        "referencedDeclaration": 3076,
                                                                                                                        "src": "18545:12:18",
                                                                                                                        "typeDescriptions": {
                                                                                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                        }
                                                                                                                    },
                                                                                                                    "id": 7609,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "kind": "functionCall",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [],
                                                                                                                    "nodeType": "FunctionCall",
                                                                                                                    "src": "18545:54:18",
                                                                                                                    "tryCall": false,
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "src": "18473:126:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7611,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "18473:126:18"
                                                                                                        },
                                                                                                        {
                                                                                                            "expression": {
                                                                                                                "id": 7614,
                                                                                                                "isConstant": false,
                                                                                                                "isLValue": false,
                                                                                                                "isPure": false,
                                                                                                                "lValueRequested": false,
                                                                                                                "leftHandSide": {
                                                                                                                    "id": 7612,
                                                                                                                    "name": "cashOffered",
                                                                                                                    "nodeType": "Identifier",
                                                                                                                    "overloadedDeclarations": [],
                                                                                                                    "referencedDeclaration": 7344,
                                                                                                                    "src": "18638:11:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    }
                                                                                                                },
                                                                                                                "nodeType": "Assignment",
                                                                                                                "operator": "=",
                                                                                                                "rightHandSide": {
                                                                                                                    "hexValue": "30",
                                                                                                                    "id": 7613,
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": true,
                                                                                                                    "kind": "number",
                                                                                                                    "lValueRequested": false,
                                                                                                                    "nodeType": "Literal",
                                                                                                                    "src": "18652:1:18",
                                                                                                                    "typeDescriptions": {
                                                                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                                                                        "typeString": "int_const 0"
                                                                                                                    },
                                                                                                                    "value": "0"
                                                                                                                },
                                                                                                                "src": "18638:15:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            },
                                                                                                            "id": 7615,
                                                                                                            "nodeType": "ExpressionStatement",
                                                                                                            "src": "18638:15:18"
                                                                                                        }
                                                                                                    ]
                                                                                                }
                                                                                            }
                                                                                        ]
                                                                                    }
                                                                                }
                                                                            ]
                                                                        },
                                                                        "condition": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "id": 7392,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftExpression": {
                                                                                "id": 7390,
                                                                                "name": "k",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 7387,
                                                                                "src": "14827:1:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "BinaryOperation",
                                                                            "operator": "<",
                                                                            "rightExpression": {
                                                                                "id": 7391,
                                                                                "name": "matchedTokens",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 7332,
                                                                                "src": "14829:13:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "src": "14827:15:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "id": 7638,
                                                                        "initializationExpression": {
                                                                            "assignments": [
                                                                                7387
                                                                            ],
                                                                            "declarations": [
                                                                                {
                                                                                    "constant": false,
                                                                                    "id": 7387,
                                                                                    "mutability": "mutable",
                                                                                    "name": "k",
                                                                                    "nodeType": "VariableDeclaration",
                                                                                    "scope": 7638,
                                                                                    "src": "14817:6:18",
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "typeName": {
                                                                                        "id": 7386,
                                                                                        "name": "uint",
                                                                                        "nodeType": "ElementaryTypeName",
                                                                                        "src": "14817:4:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    "visibility": "internal"
                                                                                }
                                                                            ],
                                                                            "id": 7389,
                                                                            "initialValue": {
                                                                                "hexValue": "30",
                                                                                "id": 7388,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": true,
                                                                                "kind": "number",
                                                                                "lValueRequested": false,
                                                                                "nodeType": "Literal",
                                                                                "src": "14824:1:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                    "typeString": "int_const 0"
                                                                                },
                                                                                "value": "0"
                                                                            },
                                                                            "nodeType": "VariableDeclarationStatement",
                                                                            "src": "14817:8:18"
                                                                        },
                                                                        "loopExpression": {
                                                                            "expression": {
                                                                                "id": 7394,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "UnaryOperation",
                                                                                "operator": "++",
                                                                                "prefix": false,
                                                                                "src": "14844:3:18",
                                                                                "subExpression": {
                                                                                    "id": 7393,
                                                                                    "name": "k",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 7387,
                                                                                    "src": "14844:1:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "id": 7395,
                                                                            "nodeType": "ExpressionStatement",
                                                                            "src": "14844:3:18"
                                                                        },
                                                                        "nodeType": "ForStatement",
                                                                        "src": "14813:4334:18"
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    ]
                                                },
                                                "condition": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 7362,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "id": 7359,
                                                        "name": "j",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7356,
                                                        "src": "14286:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "<",
                                                    "rightExpression": {
                                                        "expression": {
                                                            "id": 7360,
                                                            "name": "offeredTokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6515,
                                                            "src": "14288:13:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 7361,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "src": "14288:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "14286:22:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "id": 7642,
                                                "initializationExpression": {
                                                    "assignments": [
                                                        7356
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 7356,
                                                            "mutability": "mutable",
                                                            "name": "j",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 7642,
                                                            "src": "14276:6:18",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "typeName": {
                                                                "id": 7355,
                                                                "name": "uint",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "14276:4:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 7358,
                                                    "initialValue": {
                                                        "hexValue": "30",
                                                        "id": 7357,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "14283:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "14276:8:18"
                                                },
                                                "loopExpression": {
                                                    "expression": {
                                                        "id": 7364,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "UnaryOperation",
                                                        "operator": "++",
                                                        "prefix": false,
                                                        "src": "14310:3:18",
                                                        "subExpression": {
                                                            "id": 7363,
                                                            "name": "j",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7356,
                                                            "src": "14310:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "id": 7365,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "14310:3:18"
                                                },
                                                "nodeType": "ForStatement",
                                                "src": "14272:4934:18"
                                            },
                                            {
                                                "condition": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 7648,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "expression": {
                                                            "baseExpression": {
                                                                "id": 7643,
                                                                "name": "pairedTokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6536,
                                                                "src": "19223:12:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$",
                                                                    "typeString": "mapping(address => address[] storage ref)"
                                                                }
                                                            },
                                                            "id": 7645,
                                                            "indexExpression": {
                                                                "id": 7644,
                                                                "name": "security",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7321,
                                                                "src": "19236:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "19223:22:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                "typeString": "address[] storage ref"
                                                            }
                                                        },
                                                        "id": 7646,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "length",
                                                        "nodeType": "MemberAccess",
                                                        "src": "19223:29:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": ">",
                                                    "rightExpression": {
                                                        "hexValue": "30",
                                                        "id": 7647,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "19254:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "src": "19223:32:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "id": 7660,
                                                "nodeType": "IfStatement",
                                                "src": "19220:151:18",
                                                "trueBody": {
                                                    "id": 7659,
                                                    "nodeType": "Block",
                                                    "src": "19256:115:18",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "id": 7650,
                                                                        "name": "security",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7321,
                                                                        "src": "19286:8:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 7651,
                                                                        "name": "cutoffTime",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7323,
                                                                        "src": "19296:10:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "id": 7649,
                                                                    "name": "createPool",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7843,
                                                                    "src": "19275:10:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                                        "typeString": "function (address,uint256)"
                                                                    }
                                                                },
                                                                "id": 7652,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "19275:32:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 7653,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "19275:32:18"
                                                        },
                                                        {
                                                            "expression": {
                                                                "id": 7657,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "UnaryOperation",
                                                                "operator": "delete",
                                                                "prefix": true,
                                                                "src": "19326:29:18",
                                                                "subExpression": {
                                                                    "baseExpression": {
                                                                        "id": 7654,
                                                                        "name": "pairedTokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6536,
                                                                        "src": "19333:12:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$",
                                                                            "typeString": "mapping(address => address[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 7656,
                                                                    "indexExpression": {
                                                                        "id": 7655,
                                                                        "name": "security",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7321,
                                                                        "src": "19346:8:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "19333:22:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                                        "typeString": "address[] storage ref"
                                                                    }
                                                                },
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 7658,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "19326:29:18"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "id": 7664,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "onIssue",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 7326,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7321,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7664,
                                    "src": "13726:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7320,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13726:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7323,
                                    "mutability": "mutable",
                                    "name": "cutoffTime",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7664,
                                    "src": "13744:18:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7322,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13744:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7325,
                                    "mutability": "mutable",
                                    "name": "issuer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7664,
                                    "src": "13764:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7324,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "13764:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "13725:54:18"
                        },
                        "returnParameters": {
                            "id": 7327,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "13788:0:18"
                        },
                        "scope": 9283,
                        "src": "13709:5680:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "private"
                    },
                    {
                        "body": {
                            "id": 7842,
                            "nodeType": "Block",
                            "src": "19468:1871:18",
                            "statements": [
                                {
                                    "assignments": [
                                        7672
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7672,
                                            "mutability": "mutable",
                                            "name": "matchedTokens",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7842,
                                            "src": "19479:21:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 7671,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "19479:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7677,
                                    "initialValue": {
                                        "expression": {
                                            "baseExpression": {
                                                "id": 7673,
                                                "name": "pairedTokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6536,
                                                "src": "19503:12:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$",
                                                    "typeString": "mapping(address => address[] storage ref)"
                                                }
                                            },
                                            "id": 7675,
                                            "indexExpression": {
                                                "id": 7674,
                                                "name": "security",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7666,
                                                "src": "19516:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "19503:22:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                "typeString": "address[] storage ref"
                                            }
                                        },
                                        "id": 7676,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "19503:29:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "19479:53:18"
                                },
                                {
                                    "body": {
                                        "id": 7840,
                                        "nodeType": "Block",
                                        "src": "19644:1688:18",
                                        "statements": [
                                            {
                                                "assignments": [
                                                    7689
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 7689,
                                                        "mutability": "mutable",
                                                        "name": "lptoken",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 7840,
                                                        "src": "19659:15:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 7688,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "19659:7:18",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 7695,
                                                "initialValue": {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 7690,
                                                            "name": "pairedTokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6536,
                                                            "src": "19677:12:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$",
                                                                "typeString": "mapping(address => address[] storage ref)"
                                                            }
                                                        },
                                                        "id": 7692,
                                                        "indexExpression": {
                                                            "id": 7691,
                                                            "name": "security",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7666,
                                                            "src": "19690:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "19677:22:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                                            "typeString": "address[] storage ref"
                                                        }
                                                    },
                                                    "id": 7694,
                                                    "indexExpression": {
                                                        "id": 7693,
                                                        "name": "x",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7679,
                                                        "src": "19700:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "19677:25:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "19659:43:18"
                                            },
                                            {
                                                "assignments": [
                                                    7697
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 7697,
                                                        "mutability": "mutable",
                                                        "name": "securityAmount",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 7840,
                                                        "src": "19717:22:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "typeName": {
                                                            "id": 7696,
                                                            "name": "uint256",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "19717:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 7704,
                                                "initialValue": {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 7698,
                                                                "name": "qlTokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6548,
                                                                "src": "19742:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                }
                                                            },
                                                            "id": 7700,
                                                            "indexExpression": {
                                                                "id": 7699,
                                                                "name": "security",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7666,
                                                                "src": "19751:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "19742:18:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                            }
                                                        },
                                                        "id": 7702,
                                                        "indexExpression": {
                                                            "id": 7701,
                                                            "name": "lptoken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7689,
                                                            "src": "19761:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "19742:27:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                            "typeString": "struct IMarketMaker.liquidity storage ref"
                                                        }
                                                    },
                                                    "id": 7703,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "amountIssued",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 11681,
                                                    "src": "19742:40:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "19717:65:18"
                                            },
                                            {
                                                "assignments": [
                                                    7706
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 7706,
                                                        "mutability": "mutable",
                                                        "name": "cashAmount",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 7840,
                                                        "src": "19797:18:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "typeName": {
                                                            "id": 7705,
                                                            "name": "uint256",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "19797:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 7713,
                                                "initialValue": {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 7707,
                                                                "name": "qlTokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6548,
                                                                "src": "19818:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                }
                                                            },
                                                            "id": 7709,
                                                            "indexExpression": {
                                                                "id": 7708,
                                                                "name": "security",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7666,
                                                                "src": "19827:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "19818:18:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                            }
                                                        },
                                                        "id": 7711,
                                                        "indexExpression": {
                                                            "id": 7710,
                                                            "name": "lptoken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7689,
                                                            "src": "19837:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "19818:27:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                            "typeString": "struct IMarketMaker.liquidity storage ref"
                                                        }
                                                    },
                                                    "id": 7712,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "amountOffered",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 11683,
                                                    "src": "19818:41:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "19797:62:18"
                                            },
                                            {
                                                "assignments": [
                                                    7717
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 7717,
                                                        "mutability": "mutable",
                                                        "name": "poolparams",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 7840,
                                                        "src": "19886:60:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "memory",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_FactoryPoolParams_$12040_memory_ptr",
                                                            "typeString": "struct IPrimaryIssuePoolFactory.FactoryPoolParams"
                                                        },
                                                        "typeName": {
                                                            "id": 7716,
                                                            "name": "IPrimaryIssuePoolFactory.FactoryPoolParams",
                                                            "nodeType": "UserDefinedTypeName",
                                                            "referencedDeclaration": 12040,
                                                            "src": "19886:42:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_FactoryPoolParams_$12040_storage_ptr",
                                                                "typeString": "struct IPrimaryIssuePoolFactory.FactoryPoolParams"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 7750,
                                                "initialValue": {
                                                    "arguments": [
                                                        {
                                                            "hexValue": "566572696669656420506f6f6c20546f6b656e",
                                                            "id": 7720,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "20018:21:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_d8407c43b70b062a4ebfce2d65b9d672a39ddff01e2772e896f61833dce954b7",
                                                                "typeString": "literal_string \"Verified Pool Token\""
                                                            },
                                                            "value": "Verified Pool Token"
                                                        },
                                                        {
                                                            "hexValue": "565054",
                                                            "id": 7721,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "20067:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_7fee470b81c86493872dc1c9070ce794188d075d1c10f31e689bb13cbd714392",
                                                                "typeString": "literal_string \"VPT\""
                                                            },
                                                            "value": "VPT"
                                                        },
                                                        {
                                                            "id": 7722,
                                                            "name": "security",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7666,
                                                            "src": "20102:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 7723,
                                                            "name": "lptoken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7689,
                                                            "src": "20140:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 7724,
                                                                        "name": "qlTokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6548,
                                                                        "src": "20180:8:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                            "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                        }
                                                                    },
                                                                    "id": 7726,
                                                                    "indexExpression": {
                                                                        "id": 7725,
                                                                        "name": "security",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7666,
                                                                        "src": "20189:8:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "20180:18:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                        "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                    }
                                                                },
                                                                "id": 7728,
                                                                "indexExpression": {
                                                                    "id": 7727,
                                                                    "name": "lptoken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7689,
                                                                    "src": "20199:7:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "20180:27:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                                    "typeString": "struct IMarketMaker.liquidity storage ref"
                                                                }
                                                            },
                                                            "id": 7729,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "minPrice",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11677,
                                                            "src": "20180:36:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "baseExpression": {
                                                                            "id": 7730,
                                                                            "name": "mmtokens",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6531,
                                                                            "src": "20254:8:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                            }
                                                                        },
                                                                        "id": 7732,
                                                                        "indexExpression": {
                                                                            "id": 7731,
                                                                            "name": "security",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 7666,
                                                                            "src": "20263:8:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "20254:18:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 7734,
                                                                    "indexExpression": {
                                                                        "id": 7733,
                                                                        "name": "lptoken",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7689,
                                                                        "src": "20273:7:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "20254:27:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 7736,
                                                                "indexExpression": {
                                                                    "hexValue": "30",
                                                                    "id": 7735,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "20282:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0"
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "20254:30:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_token_$11675_storage",
                                                                    "typeString": "struct IMarketMaker.token storage ref"
                                                                }
                                                            },
                                                            "id": 7737,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "minimumOrderSize",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11672,
                                                            "src": "20254:47:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 7738,
                                                            "name": "securityAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7697,
                                                            "src": "20335:14:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 7739,
                                                            "name": "swapFeePercentage",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6395,
                                                            "src": "20388:17:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 7740,
                                                            "name": "cutoffTime",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7668,
                                                            "src": "20437:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "baseExpression": {
                                                                            "id": 7741,
                                                                            "name": "mmtokens",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6531,
                                                                            "src": "20480:8:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                                "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                            }
                                                                        },
                                                                        "id": 7743,
                                                                        "indexExpression": {
                                                                            "id": 7742,
                                                                            "name": "security",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 7666,
                                                                            "src": "20489:8:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "20480:18:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 7745,
                                                                    "indexExpression": {
                                                                        "id": 7744,
                                                                        "name": "lptoken",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7689,
                                                                        "src": "20499:7:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "20480:27:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 7747,
                                                                "indexExpression": {
                                                                    "hexValue": "30",
                                                                    "id": 7746,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "20508:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0"
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "20480:30:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_token_$11675_storage",
                                                                    "typeString": "struct IMarketMaker.token storage ref"
                                                                }
                                                            },
                                                            "id": 7748,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "offeringdocs",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11674,
                                                            "src": "20480:43:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_string_storage",
                                                                "typeString": "string storage ref"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_stringliteral_d8407c43b70b062a4ebfce2d65b9d672a39ddff01e2772e896f61833dce954b7",
                                                                "typeString": "literal_string \"Verified Pool Token\""
                                                            },
                                                            {
                                                                "typeIdentifier": "t_stringliteral_7fee470b81c86493872dc1c9070ce794188d075d1c10f31e689bb13cbd714392",
                                                                "typeString": "literal_string \"VPT\""
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_string_storage",
                                                                "typeString": "string storage ref"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "id": 7718,
                                                            "name": "IPrimaryIssuePoolFactory",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 12048,
                                                            "src": "19949:24:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_IPrimaryIssuePoolFactory_$12048_$",
                                                                "typeString": "type(contract IPrimaryIssuePoolFactory)"
                                                            }
                                                        },
                                                        "id": 7719,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "FactoryPoolParams",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12040,
                                                        "src": "19949:42:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_struct$_FactoryPoolParams_$12040_storage_ptr_$",
                                                            "typeString": "type(struct IPrimaryIssuePoolFactory.FactoryPoolParams storage pointer)"
                                                        }
                                                    },
                                                    "id": 7749,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "structConstructorCall",
                                                    "lValueRequested": false,
                                                    "names": [
                                                        "name",
                                                        "symbol",
                                                        "security",
                                                        "currency",
                                                        "minimumPrice",
                                                        "minimumOrderSize",
                                                        "maxAmountsIn",
                                                        "swapFeePercentage",
                                                        "cutOffTime",
                                                        "offeringDocs"
                                                    ],
                                                    "nodeType": "FunctionCall",
                                                    "src": "19949:590:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_FactoryPoolParams_$12040_memory_ptr",
                                                        "typeString": "struct IPrimaryIssuePoolFactory.FactoryPoolParams memory"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "19886:653:18"
                                            },
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "id": 7755,
                                                            "name": "vault",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6392,
                                                            "src": "20600:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 7756,
                                                            "name": "securityAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7697,
                                                            "src": "20607:14:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 7752,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7666,
                                                                    "src": "20580:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 7751,
                                                                "name": "ISecurity",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 12122,
                                                                "src": "20570:9:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ISecurity_$12122_$",
                                                                    "typeString": "type(contract ISecurity)"
                                                                }
                                                            },
                                                            "id": 7753,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "20570:19:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ISecurity_$12122",
                                                                "typeString": "contract ISecurity"
                                                            }
                                                        },
                                                        "id": 7754,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "whiteList",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12121,
                                                        "src": "20570:29:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,uint256) external"
                                                        }
                                                    },
                                                    "id": 7757,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "20570:52:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 7758,
                                                "nodeType": "ExpressionStatement",
                                                "src": "20570:52:18"
                                            },
                                            {
                                                "assignments": [
                                                    7760
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 7760,
                                                        "mutability": "mutable",
                                                        "name": "newIssue",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 7840,
                                                        "src": "20638:16:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        },
                                                        "typeName": {
                                                            "id": 7759,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "20638:7:18",
                                                            "stateMutability": "nonpayable",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 7767,
                                                "initialValue": {
                                                    "arguments": [
                                                        {
                                                            "id": 7765,
                                                            "name": "poolparams",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7717,
                                                            "src": "20698:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_FactoryPoolParams_$12040_memory_ptr",
                                                                "typeString": "struct IPrimaryIssuePoolFactory.FactoryPoolParams memory"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_struct$_FactoryPoolParams_$12040_memory_ptr",
                                                                "typeString": "struct IPrimaryIssuePoolFactory.FactoryPoolParams memory"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 7762,
                                                                    "name": "factory",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6390,
                                                                    "src": "20682:7:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 7761,
                                                                "name": "IPrimaryIssuePoolFactory",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 12048,
                                                                "src": "20657:24:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IPrimaryIssuePoolFactory_$12048_$",
                                                                    "typeString": "type(contract IPrimaryIssuePoolFactory)"
                                                                }
                                                            },
                                                            "id": 7763,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "20657:33:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IPrimaryIssuePoolFactory_$12048",
                                                                "typeString": "contract IPrimaryIssuePoolFactory"
                                                            }
                                                        },
                                                        "id": 7764,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "create",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12047,
                                                        "src": "20657:40:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_struct$_FactoryPoolParams_$12040_memory_ptr_$returns$_t_address_$",
                                                            "typeString": "function (struct IPrimaryIssuePoolFactory.FactoryPoolParams memory) external returns (address)"
                                                        }
                                                    },
                                                    "id": 7766,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "20657:52:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "20638:71:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 7780,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "expression": {
                                                            "baseExpression": {
                                                                "id": 7768,
                                                                "name": "issues",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6567,
                                                                "src": "20776:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_primary_$11703_storage_$",
                                                                    "typeString": "mapping(address => struct IMarketMaker.primary storage ref)"
                                                                }
                                                            },
                                                            "id": 7770,
                                                            "indexExpression": {
                                                                "id": 7769,
                                                                "name": "security",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7666,
                                                                "src": "20783:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "20776:16:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_primary_$11703_storage",
                                                                "typeString": "struct IMarketMaker.primary storage ref"
                                                            }
                                                        },
                                                        "id": 7771,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "issuer",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 11702,
                                                        "src": "20776:23:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "expression": {
                                                            "baseExpression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 7772,
                                                                        "name": "mmtokens",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6531,
                                                                        "src": "20802:8:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                            "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                        }
                                                                    },
                                                                    "id": 7774,
                                                                    "indexExpression": {
                                                                        "id": 7773,
                                                                        "name": "security",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7666,
                                                                        "src": "20811:8:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "20802:18:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                        "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                    }
                                                                },
                                                                "id": 7776,
                                                                "indexExpression": {
                                                                    "id": 7775,
                                                                    "name": "lptoken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7689,
                                                                    "src": "20821:7:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "20802:27:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                                    "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                                }
                                                            },
                                                            "id": 7778,
                                                            "indexExpression": {
                                                                "hexValue": "30",
                                                                "id": 7777,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "kind": "number",
                                                                "lValueRequested": false,
                                                                "nodeType": "Literal",
                                                                "src": "20830:1:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                    "typeString": "int_const 0"
                                                                },
                                                                "value": "0"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "20802:30:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_token_$11675_storage",
                                                                "typeString": "struct IMarketMaker.token storage ref"
                                                            }
                                                        },
                                                        "id": 7779,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "owner",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 11660,
                                                        "src": "20802:36:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "20776:62:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 7781,
                                                "nodeType": "ExpressionStatement",
                                                "src": "20776:62:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 7787,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "expression": {
                                                            "baseExpression": {
                                                                "id": 7782,
                                                                "name": "issues",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6567,
                                                                "src": "20853:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_struct$_primary_$11703_storage_$",
                                                                    "typeString": "mapping(address => struct IMarketMaker.primary storage ref)"
                                                                }
                                                            },
                                                            "id": 7784,
                                                            "indexExpression": {
                                                                "id": 7783,
                                                                "name": "security",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7666,
                                                                "src": "20860:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "20853:16:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_primary_$11703_storage",
                                                                "typeString": "struct IMarketMaker.primary storage ref"
                                                            }
                                                        },
                                                        "id": 7785,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "deadline",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 11697,
                                                        "src": "20853:25:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "id": 7786,
                                                        "name": "cutoffTime",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7668,
                                                        "src": "20881:10:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "20853:38:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 7788,
                                                "nodeType": "ExpressionStatement",
                                                "src": "20853:38:18"
                                            },
                                            {
                                                "assignments": [
                                                    7790
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 7790,
                                                        "mutability": "mutable",
                                                        "name": "pool",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 7840,
                                                        "src": "20906:12:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "default",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        "typeName": {
                                                            "id": 7789,
                                                            "name": "bytes32",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "20906:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 7796,
                                                "initialValue": {
                                                    "arguments": [],
                                                    "expression": {
                                                        "argumentTypes": [],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 7792,
                                                                    "name": "newIssue",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7760,
                                                                    "src": "20939:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 7791,
                                                                "name": "IPrimaryIssuePool",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 12016,
                                                                "src": "20921:17:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IPrimaryIssuePool_$12016_$",
                                                                    "typeString": "type(contract IPrimaryIssuePool)"
                                                                }
                                                            },
                                                            "id": 7793,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "20921:27:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IPrimaryIssuePool_$12016",
                                                                "typeString": "contract IPrimaryIssuePool"
                                                            }
                                                        },
                                                        "id": 7794,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getPoolId",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 11985,
                                                        "src": "20921:37:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                                            "typeString": "function () view external returns (bytes32)"
                                                        }
                                                    },
                                                    "id": 7795,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "20921:39:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "20906:54:18"
                                            },
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "id": 7802,
                                                            "name": "pool",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7790,
                                                            "src": "21019:4:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "id": 7797,
                                                                    "name": "issues",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6567,
                                                                    "src": "20991:6:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_primary_$11703_storage_$",
                                                                        "typeString": "mapping(address => struct IMarketMaker.primary storage ref)"
                                                                    }
                                                                },
                                                                "id": 7799,
                                                                "indexExpression": {
                                                                    "id": 7798,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7666,
                                                                    "src": "20998:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "20991:16:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_primary_$11703_storage",
                                                                    "typeString": "struct IMarketMaker.primary storage ref"
                                                                }
                                                            },
                                                            "id": 7800,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "pools",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11700,
                                                            "src": "20991:22:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                "typeString": "bytes32[] storage ref"
                                                            }
                                                        },
                                                        "id": 7801,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "push",
                                                        "nodeType": "MemberAccess",
                                                        "src": "20991:27:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$",
                                                            "typeString": "function (bytes32)"
                                                        }
                                                    },
                                                    "id": 7803,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "20991:33:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 7804,
                                                "nodeType": "ExpressionStatement",
                                                "src": "20991:33:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 7809,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "baseExpression": {
                                                            "id": 7805,
                                                            "name": "pools",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6588,
                                                            "src": "21039:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 7807,
                                                        "indexExpression": {
                                                            "id": 7806,
                                                            "name": "pool",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7790,
                                                            "src": "21045:4:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "21039:11:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "id": 7808,
                                                        "name": "newIssue",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7760,
                                                        "src": "21053:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "21039:22:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 7810,
                                                "nodeType": "ExpressionStatement",
                                                "src": "21039:22:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 7815,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "baseExpression": {
                                                            "id": 7811,
                                                            "name": "poolSecurity",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6592,
                                                            "src": "21076:12:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 7813,
                                                        "indexExpression": {
                                                            "id": 7812,
                                                            "name": "pool",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7790,
                                                            "src": "21089:4:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "21076:18:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "id": 7814,
                                                        "name": "security",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7666,
                                                        "src": "21097:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "21076:29:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 7816,
                                                "nodeType": "ExpressionStatement",
                                                "src": "21076:29:18"
                                            },
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "id": 7818,
                                                            "name": "pool",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7790,
                                                            "src": "21167:4:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "id": 7819,
                                                            "name": "security",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7666,
                                                            "src": "21173:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 7820,
                                                            "name": "lptoken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7689,
                                                            "src": "21183:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 7821,
                                                            "name": "securityAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7697,
                                                            "src": "21192:14:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 7822,
                                                            "name": "cashAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7706,
                                                            "src": "21208:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 7817,
                                                        "name": "joinPool",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7977,
                                                        "src": "21158:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                                                            "typeString": "function (bytes32,address,address,uint256,uint256)"
                                                        }
                                                    },
                                                    "id": 7823,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "21158:61:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 7824,
                                                "nodeType": "ExpressionStatement",
                                                "src": "21158:61:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 7830,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "UnaryOperation",
                                                    "operator": "delete",
                                                    "prefix": true,
                                                    "src": "21234:34:18",
                                                    "subExpression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 7825,
                                                                "name": "qlTokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6548,
                                                                "src": "21241:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))"
                                                                }
                                                            },
                                                            "id": 7827,
                                                            "indexExpression": {
                                                                "id": 7826,
                                                                "name": "security",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7666,
                                                                "src": "21250:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "21241:18:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_struct$_liquidity_$11684_storage_$",
                                                                "typeString": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                            }
                                                        },
                                                        "id": 7829,
                                                        "indexExpression": {
                                                            "id": 7828,
                                                            "name": "lptoken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7689,
                                                            "src": "21260:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "21241:27:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_liquidity_$11684_storage",
                                                            "typeString": "struct IMarketMaker.liquidity storage ref"
                                                        }
                                                    },
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 7831,
                                                "nodeType": "ExpressionStatement",
                                                "src": "21234:34:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 7838,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 7832,
                                                                "name": "pairedTokenIndex",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6542,
                                                                "src": "21283:16:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                    "typeString": "mapping(address => mapping(address => uint256))"
                                                                }
                                                            },
                                                            "id": 7835,
                                                            "indexExpression": {
                                                                "id": 7833,
                                                                "name": "security",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7666,
                                                                "src": "21300:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "21283:26:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 7836,
                                                        "indexExpression": {
                                                            "id": 7834,
                                                            "name": "lptoken",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7689,
                                                            "src": "21310:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "21283:35:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "hexValue": "30",
                                                        "id": 7837,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "21319:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "src": "21283:37:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 7839,
                                                "nodeType": "ExpressionStatement",
                                                "src": "21283:37:18"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 7684,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "id": 7682,
                                            "name": "x",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7679,
                                            "src": "19623:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "id": 7683,
                                            "name": "matchedTokens",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7672,
                                            "src": "19625:13:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "19623:15:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 7841,
                                    "initializationExpression": {
                                        "assignments": [
                                            7679
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 7679,
                                                "mutability": "mutable",
                                                "name": "x",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 7841,
                                                "src": "19613:6:18",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 7678,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "19613:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 7681,
                                        "initialValue": {
                                            "hexValue": "30",
                                            "id": 7680,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "19620:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "19613:8:18"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "id": 7686,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "19640:3:18",
                                            "subExpression": {
                                                "id": 7685,
                                                "name": "x",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7679,
                                                "src": "19640:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 7687,
                                        "nodeType": "ExpressionStatement",
                                        "src": "19640:3:18"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "19609:1723:18"
                                }
                            ]
                        },
                        "id": 7843,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "createPool",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 7669,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7666,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7843,
                                    "src": "19421:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7665,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "19421:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7668,
                                    "mutability": "mutable",
                                    "name": "cutoffTime",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7843,
                                    "src": "19439:18:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7667,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "19439:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "19420:38:18"
                        },
                        "returnParameters": {
                            "id": 7670,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "19468:0:18"
                        },
                        "scope": 9283,
                        "src": "19401:1938:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 7976,
                            "nodeType": "Block",
                            "src": "21470:1057:18",
                            "statements": [
                                {
                                    "assignments": [
                                        7859,
                                        null,
                                        null
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7859,
                                            "mutability": "mutable",
                                            "name": "tokens",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7976,
                                            "src": "21482:22:18",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                "typeString": "contract IERC20[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 7857,
                                                    "name": "IERC20",
                                                    "nodeType": "UserDefinedTypeName",
                                                    "referencedDeclaration": 2938,
                                                    "src": "21482:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                                        "typeString": "contract IERC20"
                                                    }
                                                },
                                                "id": 7858,
                                                "nodeType": "ArrayTypeName",
                                                "src": "21482:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_storage_ptr",
                                                    "typeString": "contract IERC20[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        },
                                        null,
                                        null
                                    ],
                                    "id": 7866,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 7864,
                                                "name": "pool",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7845,
                                                "src": "21540:4:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 7861,
                                                        "name": "vault",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6392,
                                                        "src": "21519:5:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 7860,
                                                    "name": "IVault",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3688,
                                                    "src": "21512:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                        "typeString": "type(contract IVault)"
                                                    }
                                                },
                                                "id": 7862,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "21512:13:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IVault_$3688",
                                                    "typeString": "contract IVault"
                                                }
                                            },
                                            "id": 7863,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getPoolTokens",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3444,
                                            "src": "21512:27:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                                                "typeString": "function (bytes32) view external returns (contract IERC20[] memory,uint256[] memory,uint256)"
                                            }
                                        },
                                        "id": 7865,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "21512:33:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                                            "typeString": "tuple(contract IERC20[] memory,uint256[] memory,uint256)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "21481:64:18"
                                },
                                {
                                    "assignments": [
                                        7870
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7870,
                                            "mutability": "mutable",
                                            "name": "assets",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7976,
                                            "src": "21556:22:18",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                "typeString": "contract IAsset[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 7868,
                                                    "name": "IAsset",
                                                    "nodeType": "UserDefinedTypeName",
                                                    "referencedDeclaration": 3127,
                                                    "src": "21556:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IAsset_$3127",
                                                        "typeString": "contract IAsset"
                                                    }
                                                },
                                                "id": 7869,
                                                "nodeType": "ArrayTypeName",
                                                "src": "21556:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_storage_ptr",
                                                    "typeString": "contract IAsset[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7874,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 7872,
                                                "name": "tokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7859,
                                                "src": "21604:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                    "typeString": "contract IERC20[] memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                    "typeString": "contract IERC20[] memory"
                                                }
                                            ],
                                            "id": 7871,
                                            "name": "_convertERC20sToAssets",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9213,
                                            "src": "21581:22:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$returns$_t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr_$",
                                                "typeString": "function (contract IERC20[] memory) pure returns (contract IAsset[] memory)"
                                            }
                                        },
                                        "id": 7873,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "21581:30:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                            "typeString": "contract IAsset[] memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "21556:55:18"
                                },
                                {
                                    "assignments": [
                                        7879
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7879,
                                            "mutability": "mutable",
                                            "name": "maxAmountsIn",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7976,
                                            "src": "21622:29:18",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                "typeString": "uint256[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 7877,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "21622:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 7878,
                                                "nodeType": "ArrayTypeName",
                                                "src": "21622:9:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                                    "typeString": "uint256[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7886,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "expression": {
                                                    "id": 7883,
                                                    "name": "tokens",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 7859,
                                                    "src": "21668:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                        "typeString": "contract IERC20[] memory"
                                                    }
                                                },
                                                "id": 7884,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "length",
                                                "nodeType": "MemberAccess",
                                                "src": "21668:13:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 7882,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "NewExpression",
                                            "src": "21654:13:18",
                                            "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": 7880,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "21658:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 7881,
                                                "nodeType": "ArrayTypeName",
                                                "src": "21658:9:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                                    "typeString": "uint256[]"
                                                }
                                            }
                                        },
                                        "id": 7885,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "21654:28:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                            "typeString": "uint256[] memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "21622:60:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 7891,
                                                "name": "vault",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6392,
                                                "src": "21732:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 7892,
                                                "name": "cashAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7853,
                                                "src": "21739:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 7888,
                                                        "name": "lptoken",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7849,
                                                        "src": "21715:7:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 7887,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2860,
                                                    "src": "21709:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 7889,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "21709:14:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 7890,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "approve",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2543,
                                            "src": "21709:22:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 7893,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "21709:41:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 7894,
                                    "nodeType": "ExpressionStatement",
                                    "src": "21709:41:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 7899,
                                                "name": "vault",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6392,
                                                "src": "21785:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 7900,
                                                "name": "securityAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7851,
                                                "src": "21792:14:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 7896,
                                                        "name": "security",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7847,
                                                        "src": "21767:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 7895,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2860,
                                                    "src": "21761:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 7897,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "21761:15:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 7898,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "approve",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2543,
                                            "src": "21761:23:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 7901,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "21761:46:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 7902,
                                    "nodeType": "ExpressionStatement",
                                    "src": "21761:46:18"
                                },
                                {
                                    "body": {
                                        "id": 7941,
                                        "nodeType": "Block",
                                        "src": "21857:315:18",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                                        "typeString": "contract IERC20"
                                                    },
                                                    "id": 7919,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "baseExpression": {
                                                            "id": 7913,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7859,
                                                            "src": "21875:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                "typeString": "contract IERC20[] memory"
                                                            }
                                                        },
                                                        "id": 7915,
                                                        "indexExpression": {
                                                            "id": 7914,
                                                            "name": "t",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7904,
                                                            "src": "21882:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "21875:9:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "arguments": [
                                                            {
                                                                "id": 7917,
                                                                "name": "security",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7847,
                                                                "src": "21893:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 7916,
                                                            "name": "IERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2938,
                                                            "src": "21886:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                "typeString": "type(contract IERC20)"
                                                            }
                                                        },
                                                        "id": 7918,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "21886:16:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    },
                                                    "src": "21875:27:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "condition": {
                                                        "commonType": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        },
                                                        "id": 7932,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "baseExpression": {
                                                                "id": 7926,
                                                                "name": "tokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7859,
                                                                "src": "21976:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                    "typeString": "contract IERC20[] memory"
                                                                }
                                                            },
                                                            "id": 7928,
                                                            "indexExpression": {
                                                                "id": 7927,
                                                                "name": "t",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7904,
                                                                "src": "21983:1:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "21976:9:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "==",
                                                        "rightExpression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 7930,
                                                                    "name": "lptoken",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7849,
                                                                    "src": "21994:7:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 7929,
                                                                "name": "IERC20",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2938,
                                                                "src": "21987:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                    "typeString": "type(contract IERC20)"
                                                                }
                                                            },
                                                            "id": 7931,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "21987:15:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        },
                                                        "src": "21976:26:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 7939,
                                                    "nodeType": "IfStatement",
                                                    "src": "21973:76:18",
                                                    "trueBody": {
                                                        "expression": {
                                                            "id": 7937,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "leftHandSide": {
                                                                "baseExpression": {
                                                                    "id": 7933,
                                                                    "name": "maxAmountsIn",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7879,
                                                                    "src": "22021:12:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                        "typeString": "uint256[] memory"
                                                                    }
                                                                },
                                                                "id": 7935,
                                                                "indexExpression": {
                                                                    "id": 7934,
                                                                    "name": "t",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7904,
                                                                    "src": "22034:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": true,
                                                                "nodeType": "IndexAccess",
                                                                "src": "22021:15:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "Assignment",
                                                            "operator": "=",
                                                            "rightHandSide": {
                                                                "id": 7936,
                                                                "name": "cashAmount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7853,
                                                                "src": "22039:10:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "src": "22021:28:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "id": 7938,
                                                        "nodeType": "ExpressionStatement",
                                                        "src": "22021:28:18"
                                                    }
                                                },
                                                "id": 7940,
                                                "nodeType": "IfStatement",
                                                "src": "21872:177:18",
                                                "trueBody": {
                                                    "expression": {
                                                        "id": 7924,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "baseExpression": {
                                                                "id": 7920,
                                                                "name": "maxAmountsIn",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7879,
                                                                "src": "21921:12:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                    "typeString": "uint256[] memory"
                                                                }
                                                            },
                                                            "id": 7922,
                                                            "indexExpression": {
                                                                "id": 7921,
                                                                "name": "t",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7904,
                                                                "src": "21934:1:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "nodeType": "IndexAccess",
                                                            "src": "21921:15:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "id": 7923,
                                                            "name": "securityAmount",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7851,
                                                            "src": "21939:14:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "21921:32:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "id": 7925,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "21921:32:18"
                                                }
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 7909,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "id": 7906,
                                            "name": "t",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7904,
                                            "src": "21833:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "expression": {
                                                "id": 7907,
                                                "name": "tokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7859,
                                                "src": "21837:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                    "typeString": "contract IERC20[] memory"
                                                }
                                            },
                                            "id": 7908,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "src": "21837:13:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "21833:17:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 7942,
                                    "initializationExpression": {
                                        "assignments": [
                                            7904
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 7904,
                                                "mutability": "mutable",
                                                "name": "t",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 7942,
                                                "src": "21822:9:18",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 7903,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "21822:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 7905,
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "21822:9:18"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "id": 7911,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "21852:3:18",
                                            "subExpression": {
                                                "id": 7910,
                                                "name": "t",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7904,
                                                "src": "21852:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 7912,
                                        "nodeType": "ExpressionStatement",
                                        "src": "21852:3:18"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "21818:354:18"
                                },
                                {
                                    "assignments": [
                                        7946
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 7946,
                                            "mutability": "mutable",
                                            "name": "request",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 7976,
                                            "src": "22182:37:18",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                                "typeString": "struct IVault.JoinPoolRequest"
                                            },
                                            "typeName": {
                                                "id": 7945,
                                                "name": "IVault.JoinPoolRequest",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 3467,
                                                "src": "22182:22:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_storage_ptr",
                                                    "typeString": "struct IVault.JoinPoolRequest"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 7959,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 7949,
                                                "name": "assets",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7870,
                                                "src": "22268:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                    "typeString": "contract IAsset[] memory"
                                                }
                                            },
                                            {
                                                "id": 7950,
                                                "name": "maxAmountsIn",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7879,
                                                "src": "22303:12:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                    "typeString": "uint256[] memory"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "expression": {
                                                            "id": 7953,
                                                            "name": "JoinKind",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 11655,
                                                            "src": "22351:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_enum$_JoinKind_$11655_$",
                                                                "typeString": "type(enum IMarketMaker.JoinKind)"
                                                            }
                                                        },
                                                        "id": 7954,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "memberName": "INIT",
                                                        "nodeType": "MemberAccess",
                                                        "src": "22351:13:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_enum$_JoinKind_$11655",
                                                            "typeString": "enum IMarketMaker.JoinKind"
                                                        }
                                                    },
                                                    {
                                                        "id": 7955,
                                                        "name": "maxAmountsIn",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 7879,
                                                        "src": "22366:12:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                            "typeString": "uint256[] memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_enum$_JoinKind_$11655",
                                                            "typeString": "enum IMarketMaker.JoinKind"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                            "typeString": "uint256[] memory"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "id": 7951,
                                                        "name": "abi",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -1,
                                                        "src": "22340:3:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_abi",
                                                            "typeString": "abi"
                                                        }
                                                    },
                                                    "id": 7952,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "memberName": "encode",
                                                    "nodeType": "MemberAccess",
                                                    "src": "22340:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                                        "typeString": "function () pure returns (bytes memory)"
                                                    }
                                                },
                                                "id": 7956,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "22340:39:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            },
                                            {
                                                "hexValue": "66616c7365",
                                                "id": 7957,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "bool",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "22415:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "value": "false"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                    "typeString": "contract IAsset[] memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                    "typeString": "uint256[] memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "expression": {
                                                "id": 7947,
                                                "name": "IVault",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3688,
                                                "src": "22222:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                    "typeString": "type(contract IVault)"
                                                }
                                            },
                                            "id": 7948,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "JoinPoolRequest",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3467,
                                            "src": "22222:22:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_struct$_JoinPoolRequest_$3467_storage_ptr_$",
                                                "typeString": "type(struct IVault.JoinPoolRequest storage pointer)"
                                            }
                                        },
                                        "id": 7958,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "structConstructorCall",
                                        "lValueRequested": false,
                                        "names": [
                                            "assets",
                                            "maxAmountsIn",
                                            "userData",
                                            "fromInternalBalance"
                                        ],
                                        "nodeType": "FunctionCall",
                                        "src": "22222:210:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                            "typeString": "struct IVault.JoinPoolRequest memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "22182:250:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 7964,
                                                "name": "pool",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7845,
                                                "src": "22475:4:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 7967,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "22489:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                            "typeString": "contract PrimaryIssueManager"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                            "typeString": "contract PrimaryIssueManager"
                                                        }
                                                    ],
                                                    "id": 7966,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "22481:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 7965,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "22481:7:18",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 7968,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "22481:13:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 7971,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "22504:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                            "typeString": "contract PrimaryIssueManager"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                            "typeString": "contract PrimaryIssueManager"
                                                        }
                                                    ],
                                                    "id": 7970,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "22496:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 7969,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "22496:7:18",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 7972,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "22496:13:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 7973,
                                                "name": "request",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7946,
                                                "src": "22511:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                                    "typeString": "struct IVault.JoinPoolRequest memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                                    "typeString": "struct IVault.JoinPoolRequest memory"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 7961,
                                                        "name": "vault",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6392,
                                                        "src": "22459:5:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 7960,
                                                    "name": "IVault",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3688,
                                                    "src": "22452:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                        "typeString": "type(contract IVault)"
                                                    }
                                                },
                                                "id": 7962,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "22452:13:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IVault_$3688",
                                                    "typeString": "contract IVault"
                                                }
                                            },
                                            "id": 7963,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "joinPool",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3456,
                                            "src": "22452:22:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_payable$_t_bytes32_$_t_address_$_t_address_$_t_struct$_JoinPoolRequest_$3467_memory_ptr_$returns$__$",
                                                "typeString": "function (bytes32,address,address,struct IVault.JoinPoolRequest memory) payable external"
                                            }
                                        },
                                        "id": 7974,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "22452:67:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 7975,
                                    "nodeType": "ExpressionStatement",
                                    "src": "22452:67:18"
                                }
                            ]
                        },
                        "id": 7977,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "joinPool",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 7854,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7845,
                                    "mutability": "mutable",
                                    "name": "pool",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7977,
                                    "src": "21369:12:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 7844,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21369:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7847,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7977,
                                    "src": "21383:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7846,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21383:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7849,
                                    "mutability": "mutable",
                                    "name": "lptoken",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7977,
                                    "src": "21401:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7848,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21401:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7851,
                                    "mutability": "mutable",
                                    "name": "securityAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7977,
                                    "src": "21418:22:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7850,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21418:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7853,
                                    "mutability": "mutable",
                                    "name": "cashAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 7977,
                                    "src": "21442:18:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7852,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "21442:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "21368:93:18"
                        },
                        "returnParameters": {
                            "id": 7855,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "21470:0:18"
                        },
                        "scope": 9283,
                        "src": "21351:1176:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "private"
                    },
                    {
                        "baseFunctions": [
                            11798
                        ],
                        "body": {
                            "id": 8224,
                            "nodeType": "Block",
                            "src": "22809:1984:18",
                            "statements": [
                                {
                                    "assignments": [
                                        8001
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8001,
                                            "mutability": "mutable",
                                            "name": "index",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8224,
                                            "src": "22820:13:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8000,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "22820:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8007,
                                    "initialValue": {
                                        "baseExpression": {
                                            "baseExpression": {
                                                "id": 8002,
                                                "name": "subscriberIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6578,
                                                "src": "22836:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                    "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                }
                                            },
                                            "id": 8004,
                                            "indexExpression": {
                                                "id": 8003,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7979,
                                                "src": "22852:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "22836:23:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 8006,
                                        "indexExpression": {
                                            "id": 8005,
                                            "name": "investor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7987,
                                            "src": "22860:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "22836:33:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "22820:49:18"
                                },
                                {
                                    "assignments": [
                                        8009
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8009,
                                            "mutability": "mutable",
                                            "name": "amount",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8224,
                                            "src": "22880:14:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8008,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "22880:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8018,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 8011,
                                                "name": "cAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7985,
                                                "src": "22912:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "arguments": [
                                                            {
                                                                "id": 8014,
                                                                "name": "asset",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7983,
                                                                "src": "22950:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 8013,
                                                            "name": "IERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2938,
                                                            "src": "22943:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                "typeString": "type(contract IERC20)"
                                                            }
                                                        },
                                                        "id": 8015,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "22943:13:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    ],
                                                    "id": 8012,
                                                    "name": "_computeScalingFactor",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9248,
                                                    "src": "22921:21:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                    }
                                                },
                                                "id": 8016,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "22921:36:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 8010,
                                            "name": "_downscaleDown",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9265,
                                            "src": "22897:14:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 8017,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "22897:61:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "22880:78:18"
                                },
                                {
                                    "eventCall": {
                                        "arguments": [
                                            {
                                                "baseExpression": {
                                                    "id": 8020,
                                                    "name": "poolSecurity",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6592,
                                                    "src": "22986:12:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                        "typeString": "mapping(bytes32 => address)"
                                                    }
                                                },
                                                "id": 8022,
                                                "indexExpression": {
                                                    "id": 8021,
                                                    "name": "poolId",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 7979,
                                                    "src": "22999:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "22986:20:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8023,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7979,
                                                "src": "23008:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 8024,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7987,
                                                "src": "23016:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8025,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7983,
                                                "src": "23026:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8026,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8009,
                                                "src": "23033:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 8027,
                                                "name": "sAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7989,
                                                "src": "23041:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 8028,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "23050:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 8029,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "src": "23050:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 8030,
                                                "name": "paidIn",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 7991,
                                                "src": "23067:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "id": 8019,
                                            "name": "subscribers",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6644,
                                            "src": "22974:11:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$",
                                                "typeString": "function (address,bytes32,address,address,uint256,uint256,uint256,bool)"
                                            }
                                        },
                                        "id": 8031,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "22974:100:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8032,
                                    "nodeType": "EmitStatement",
                                    "src": "22969:105:18"
                                },
                                {
                                    "condition": {
                                        "id": 8033,
                                        "name": "paidIn",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7991,
                                        "src": "23088:6:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "id": 8222,
                                        "nodeType": "Block",
                                        "src": "24190:596:18",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 8148,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "id": 8146,
                                                        "name": "index",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8001,
                                                        "src": "24208:5:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": ">",
                                                    "rightExpression": {
                                                        "hexValue": "30",
                                                        "id": 8147,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "24216:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "src": "24208:9:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "id": 8221,
                                                "nodeType": "IfStatement",
                                                "src": "24205:570:18",
                                                "trueBody": {
                                                    "id": 8220,
                                                    "nodeType": "Block",
                                                    "src": "24218:557:18",
                                                    "statements": [
                                                        {
                                                            "assignments": [
                                                                8152
                                                            ],
                                                            "declarations": [
                                                                {
                                                                    "constant": false,
                                                                    "id": 8152,
                                                                    "mutability": "mutable",
                                                                    "name": "subscription",
                                                                    "nodeType": "VariableDeclaration",
                                                                    "scope": 8220,
                                                                    "src": "24237:47:18",
                                                                    "stateVariable": false,
                                                                    "storageLocation": "storage",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                        "typeString": "struct IMarketMaker.subscriptions"
                                                                    },
                                                                    "typeName": {
                                                                        "id": 8151,
                                                                        "name": "IMarketMaker.subscriptions",
                                                                        "nodeType": "UserDefinedTypeName",
                                                                        "referencedDeclaration": 11714,
                                                                        "src": "24237:26:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                            "typeString": "struct IMarketMaker.subscriptions"
                                                                        }
                                                                    },
                                                                    "visibility": "internal"
                                                                }
                                                            ],
                                                            "id": 8160,
                                                            "initialValue": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 8153,
                                                                        "name": "investors",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6572,
                                                                        "src": "24287:9:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 8155,
                                                                    "indexExpression": {
                                                                        "id": 8154,
                                                                        "name": "poolId",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7979,
                                                                        "src": "24297:6:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "24287:17:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 8159,
                                                                "indexExpression": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "id": 8158,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftExpression": {
                                                                        "id": 8156,
                                                                        "name": "index",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8001,
                                                                        "src": "24305:5:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "nodeType": "BinaryOperation",
                                                                    "operator": "-",
                                                                    "rightExpression": {
                                                                        "hexValue": "31",
                                                                        "id": 8157,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "number",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "24311:1:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_rational_1_by_1",
                                                                            "typeString": "int_const 1"
                                                                        },
                                                                        "value": "1"
                                                                    },
                                                                    "src": "24305:7:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "24287:26:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                                    "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                                }
                                                            },
                                                            "nodeType": "VariableDeclarationStatement",
                                                            "src": "24237:76:18"
                                                        },
                                                        {
                                                            "condition": {
                                                                "commonType": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                "id": 8164,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "expression": {
                                                                        "id": 8161,
                                                                        "name": "subscription",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8152,
                                                                        "src": "24335:12:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                            "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                        }
                                                                    },
                                                                    "id": 8162,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "investor",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 11705,
                                                                    "src": "24335:21:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": "==",
                                                                "rightExpression": {
                                                                    "id": 8163,
                                                                    "name": "investor",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7987,
                                                                    "src": "24358:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "src": "24335:31:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 8195,
                                                            "nodeType": "IfStatement",
                                                            "src": "24332:277:18",
                                                            "trueBody": {
                                                                "id": 8194,
                                                                "nodeType": "Block",
                                                                "src": "24367:242:18",
                                                                "statements": [
                                                                    {
                                                                        "expression": {
                                                                            "id": 8174,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "expression": {
                                                                                    "id": 8165,
                                                                                    "name": "subscription",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8152,
                                                                                    "src": "24390:12:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                                        "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                                    }
                                                                                },
                                                                                "id": 8167,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "memberName": "amount",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 11711,
                                                                                "src": "24390:19:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "arguments": [
                                                                                    {
                                                                                        "expression": {
                                                                                            "id": 8170,
                                                                                            "name": "subscription",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 8152,
                                                                                            "src": "24421:12:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                                                "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                                            }
                                                                                        },
                                                                                        "id": 8171,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "amount",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 11711,
                                                                                        "src": "24421:19:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "id": 8172,
                                                                                        "name": "amount",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 8009,
                                                                                        "src": "24442:6:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "id": 8168,
                                                                                        "name": "Math",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2367,
                                                                                        "src": "24412:4:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                            "typeString": "type(library Math)"
                                                                                        }
                                                                                    },
                                                                                    "id": 8169,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "sub",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 2177,
                                                                                    "src": "24412:8:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 8173,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "24412:37:18",
                                                                                "tryCall": false,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "src": "24390:59:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "id": 8175,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "24390:59:18"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "id": 8192,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "expression": {
                                                                                    "id": 8176,
                                                                                    "name": "subscription",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8152,
                                                                                    "src": "24472:12:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                                        "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                                    }
                                                                                },
                                                                                "id": 8178,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "memberName": "traded",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 11713,
                                                                                "src": "24472:19:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "arguments": [
                                                                                    {
                                                                                        "expression": {
                                                                                            "id": 8181,
                                                                                            "name": "subscription",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 8152,
                                                                                            "src": "24503:12:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                                                "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                                            }
                                                                                        },
                                                                                        "id": 8182,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "traded",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 11713,
                                                                                        "src": "24503:19:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "arguments": [
                                                                                            {
                                                                                                "id": 8184,
                                                                                                "name": "sAmount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 7989,
                                                                                                "src": "24539:7:18",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "id": 8187,
                                                                                                                "name": "security",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 7981,
                                                                                                                "src": "24577:8:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "id": 8186,
                                                                                                            "name": "IERC20",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 2938,
                                                                                                            "src": "24570:6:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                                                "typeString": "type(contract IERC20)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 8188,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "typeConversion",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "24570:16:18",
                                                                                                        "tryCall": false,
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                            "typeString": "contract IERC20"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                            "typeString": "contract IERC20"
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 8185,
                                                                                                    "name": "_computeScalingFactor",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 9248,
                                                                                                    "src": "24548:21:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 8189,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "24548:39:18",
                                                                                                "tryCall": false,
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "id": 8183,
                                                                                            "name": "_downscaleDown",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 9265,
                                                                                            "src": "24524:14:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                            }
                                                                                        },
                                                                                        "id": 8190,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "24524:64:18",
                                                                                        "tryCall": false,
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "id": 8179,
                                                                                        "name": "Math",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2367,
                                                                                        "src": "24494:4:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                            "typeString": "type(library Math)"
                                                                                        }
                                                                                    },
                                                                                    "id": 8180,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "sub",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 2177,
                                                                                    "src": "24494:8:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 8191,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "24494:95:18",
                                                                                "tryCall": false,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "src": "24472:117:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "id": 8193,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "24472:117:18"
                                                                    }
                                                                ]
                                                            }
                                                        },
                                                        {
                                                            "condition": {
                                                                "commonType": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                "id": 8202,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "baseExpression": {
                                                                        "baseExpression": {
                                                                            "id": 8196,
                                                                            "name": "subscribed",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6584,
                                                                            "src": "24630:10:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                                            }
                                                                        },
                                                                        "id": 8198,
                                                                        "indexExpression": {
                                                                            "id": 8197,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 7979,
                                                                            "src": "24641:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "24630:18:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                            "typeString": "mapping(address => uint256)"
                                                                        }
                                                                    },
                                                                    "id": 8200,
                                                                    "indexExpression": {
                                                                        "id": 8199,
                                                                        "name": "asset",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7983,
                                                                        "src": "24649:5:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "24630:25:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": ">=",
                                                                "rightExpression": {
                                                                    "id": 8201,
                                                                    "name": "amount",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8009,
                                                                    "src": "24659:6:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "24630:35:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 8219,
                                                            "nodeType": "IfStatement",
                                                            "src": "24627:132:18",
                                                            "trueBody": {
                                                                "expression": {
                                                                    "id": 8217,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftHandSide": {
                                                                        "baseExpression": {
                                                                            "baseExpression": {
                                                                                "id": 8203,
                                                                                "name": "subscribed",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 6584,
                                                                                "src": "24688:10:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                    "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                                                }
                                                                            },
                                                                            "id": 8206,
                                                                            "indexExpression": {
                                                                                "id": 8204,
                                                                                "name": "poolId",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 7979,
                                                                                "src": "24699:6:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "24688:18:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                                "typeString": "mapping(address => uint256)"
                                                                            }
                                                                        },
                                                                        "id": 8207,
                                                                        "indexExpression": {
                                                                            "id": 8205,
                                                                            "name": "asset",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 7983,
                                                                            "src": "24707:5:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": true,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "24688:25:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "nodeType": "Assignment",
                                                                    "operator": "=",
                                                                    "rightHandSide": {
                                                                        "arguments": [
                                                                            {
                                                                                "baseExpression": {
                                                                                    "baseExpression": {
                                                                                        "id": 8210,
                                                                                        "name": "subscribed",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 6584,
                                                                                        "src": "24725:10:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                                                        }
                                                                                    },
                                                                                    "id": 8212,
                                                                                    "indexExpression": {
                                                                                        "id": 8211,
                                                                                        "name": "poolId",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 7979,
                                                                                        "src": "24736:6:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "24725:18:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                                        "typeString": "mapping(address => uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 8214,
                                                                                "indexExpression": {
                                                                                    "id": 8213,
                                                                                    "name": "asset",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 7983,
                                                                                    "src": "24744:5:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "24725:25:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "id": 8215,
                                                                                "name": "amount",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8009,
                                                                                "src": "24752:6:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "id": 8208,
                                                                                "name": "Math",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2367,
                                                                                "src": "24716:4:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                    "typeString": "type(library Math)"
                                                                                }
                                                                            },
                                                                            "id": 8209,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "sub",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 2177,
                                                                            "src": "24716:8:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 8216,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "24716:43:18",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "src": "24688:71:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "id": 8218,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "24688:71:18"
                                                            }
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    },
                                    "id": 8223,
                                    "nodeType": "IfStatement",
                                    "src": "23085:1701:18",
                                    "trueBody": {
                                        "id": 8145,
                                        "nodeType": "Block",
                                        "src": "23095:1081:18",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "id": 8048,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8034,
                                                                "name": "subscribed",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6584,
                                                                "src": "23110:10:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                    "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                                }
                                                            },
                                                            "id": 8037,
                                                            "indexExpression": {
                                                                "id": 8035,
                                                                "name": "poolId",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 7979,
                                                                "src": "23121:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "23110:18:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 8038,
                                                        "indexExpression": {
                                                            "id": 8036,
                                                            "name": "asset",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 7983,
                                                            "src": "23129:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "23110:25:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "arguments": [
                                                            {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 8041,
                                                                        "name": "subscribed",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6584,
                                                                        "src": "23147:10:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                                        }
                                                                    },
                                                                    "id": 8043,
                                                                    "indexExpression": {
                                                                        "id": 8042,
                                                                        "name": "poolId",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7979,
                                                                        "src": "23158:6:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "23147:18:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                        "typeString": "mapping(address => uint256)"
                                                                    }
                                                                },
                                                                "id": 8045,
                                                                "indexExpression": {
                                                                    "id": 8044,
                                                                    "name": "asset",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7983,
                                                                    "src": "23166:5:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "23147:25:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "id": 8046,
                                                                "name": "amount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8009,
                                                                "src": "23174:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "id": 8039,
                                                                "name": "Math",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2367,
                                                                "src": "23138:4:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                    "typeString": "type(library Math)"
                                                                }
                                                            },
                                                            "id": 8040,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "add",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 2109,
                                                            "src": "23138:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 8047,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "23138:43:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "23110:71:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 8049,
                                                "nodeType": "ExpressionStatement",
                                                "src": "23110:71:18"
                                            },
                                            {
                                                "condition": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 8052,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "id": 8050,
                                                        "name": "index",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8001,
                                                        "src": "23199:5:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "hexValue": "30",
                                                        "id": 8051,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "23206:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "src": "23199:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "id": 8143,
                                                    "nodeType": "Block",
                                                    "src": "23751:406:18",
                                                    "statements": [
                                                        {
                                                            "assignments": [
                                                                8099
                                                            ],
                                                            "declarations": [
                                                                {
                                                                    "constant": false,
                                                                    "id": 8099,
                                                                    "mutability": "mutable",
                                                                    "name": "subscription",
                                                                    "nodeType": "VariableDeclaration",
                                                                    "scope": 8143,
                                                                    "src": "23770:47:18",
                                                                    "stateVariable": false,
                                                                    "storageLocation": "storage",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                        "typeString": "struct IMarketMaker.subscriptions"
                                                                    },
                                                                    "typeName": {
                                                                        "id": 8098,
                                                                        "name": "IMarketMaker.subscriptions",
                                                                        "nodeType": "UserDefinedTypeName",
                                                                        "referencedDeclaration": 11714,
                                                                        "src": "23770:26:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                            "typeString": "struct IMarketMaker.subscriptions"
                                                                        }
                                                                    },
                                                                    "visibility": "internal"
                                                                }
                                                            ],
                                                            "id": 8107,
                                                            "initialValue": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 8100,
                                                                        "name": "investors",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6572,
                                                                        "src": "23820:9:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 8102,
                                                                    "indexExpression": {
                                                                        "id": 8101,
                                                                        "name": "poolId",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7979,
                                                                        "src": "23830:6:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "23820:17:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 8106,
                                                                "indexExpression": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "id": 8105,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "leftExpression": {
                                                                        "id": 8103,
                                                                        "name": "index",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8001,
                                                                        "src": "23838:5:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "nodeType": "BinaryOperation",
                                                                    "operator": "-",
                                                                    "rightExpression": {
                                                                        "hexValue": "31",
                                                                        "id": 8104,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "kind": "number",
                                                                        "lValueRequested": false,
                                                                        "nodeType": "Literal",
                                                                        "src": "23844:1:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_rational_1_by_1",
                                                                            "typeString": "int_const 1"
                                                                        },
                                                                        "value": "1"
                                                                    },
                                                                    "src": "23838:7:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "23820:26:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                                    "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                                }
                                                            },
                                                            "nodeType": "VariableDeclarationStatement",
                                                            "src": "23770:76:18"
                                                        },
                                                        {
                                                            "condition": {
                                                                "commonType": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                "id": 8111,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "expression": {
                                                                        "id": 8108,
                                                                        "name": "subscription",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8099,
                                                                        "src": "23868:12:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                            "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                        }
                                                                    },
                                                                    "id": 8109,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "investor",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 11705,
                                                                    "src": "23868:21:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": "==",
                                                                "rightExpression": {
                                                                    "id": 8110,
                                                                    "name": "investor",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 7987,
                                                                    "src": "23891:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "src": "23868:31:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 8142,
                                                            "nodeType": "IfStatement",
                                                            "src": "23865:277:18",
                                                            "trueBody": {
                                                                "id": 8141,
                                                                "nodeType": "Block",
                                                                "src": "23900:242:18",
                                                                "statements": [
                                                                    {
                                                                        "expression": {
                                                                            "id": 8121,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "expression": {
                                                                                    "id": 8112,
                                                                                    "name": "subscription",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8099,
                                                                                    "src": "23923:12:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                                        "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                                    }
                                                                                },
                                                                                "id": 8114,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "memberName": "amount",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 11711,
                                                                                "src": "23923:19:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "arguments": [
                                                                                    {
                                                                                        "expression": {
                                                                                            "id": 8117,
                                                                                            "name": "subscription",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 8099,
                                                                                            "src": "23954:12:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                                                "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                                            }
                                                                                        },
                                                                                        "id": 8118,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "amount",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 11711,
                                                                                        "src": "23954:19:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "id": 8119,
                                                                                        "name": "amount",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 8009,
                                                                                        "src": "23975:6:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "id": 8115,
                                                                                        "name": "Math",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2367,
                                                                                        "src": "23945:4:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                            "typeString": "type(library Math)"
                                                                                        }
                                                                                    },
                                                                                    "id": 8116,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "add",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 2109,
                                                                                    "src": "23945:8:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 8120,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "23945:37:18",
                                                                                "tryCall": false,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "src": "23923:59:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "id": 8122,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "23923:59:18"
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "id": 8139,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftHandSide": {
                                                                                "expression": {
                                                                                    "id": 8123,
                                                                                    "name": "subscription",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 8099,
                                                                                    "src": "24005:12:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                                        "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                                    }
                                                                                },
                                                                                "id": 8125,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": true,
                                                                                "memberName": "traded",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 11713,
                                                                                "src": "24005:19:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "nodeType": "Assignment",
                                                                            "operator": "=",
                                                                            "rightHandSide": {
                                                                                "arguments": [
                                                                                    {
                                                                                        "expression": {
                                                                                            "id": 8128,
                                                                                            "name": "subscription",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 8099,
                                                                                            "src": "24036:12:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                                                "typeString": "struct IMarketMaker.subscriptions storage pointer"
                                                                                            }
                                                                                        },
                                                                                        "id": 8129,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "traded",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 11713,
                                                                                        "src": "24036:19:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    },
                                                                                    {
                                                                                        "arguments": [
                                                                                            {
                                                                                                "id": 8131,
                                                                                                "name": "sAmount",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 7989,
                                                                                                "src": "24072:7:18",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            {
                                                                                                "arguments": [
                                                                                                    {
                                                                                                        "arguments": [
                                                                                                            {
                                                                                                                "id": 8134,
                                                                                                                "name": "security",
                                                                                                                "nodeType": "Identifier",
                                                                                                                "overloadedDeclarations": [],
                                                                                                                "referencedDeclaration": 7981,
                                                                                                                "src": "24110:8:18",
                                                                                                                "typeDescriptions": {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            }
                                                                                                        ],
                                                                                                        "expression": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "id": 8133,
                                                                                                            "name": "IERC20",
                                                                                                            "nodeType": "Identifier",
                                                                                                            "overloadedDeclarations": [],
                                                                                                            "referencedDeclaration": 2938,
                                                                                                            "src": "24103:6:18",
                                                                                                            "typeDescriptions": {
                                                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                                                "typeString": "type(contract IERC20)"
                                                                                                            }
                                                                                                        },
                                                                                                        "id": 8135,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": false,
                                                                                                        "kind": "typeConversion",
                                                                                                        "lValueRequested": false,
                                                                                                        "names": [],
                                                                                                        "nodeType": "FunctionCall",
                                                                                                        "src": "24103:16:18",
                                                                                                        "tryCall": false,
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                            "typeString": "contract IERC20"
                                                                                                        }
                                                                                                    }
                                                                                                ],
                                                                                                "expression": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                            "typeString": "contract IERC20"
                                                                                                        }
                                                                                                    ],
                                                                                                    "id": 8132,
                                                                                                    "name": "_computeScalingFactor",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 9248,
                                                                                                    "src": "24081:21:18",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                                                                    }
                                                                                                },
                                                                                                "id": 8136,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "kind": "functionCall",
                                                                                                "lValueRequested": false,
                                                                                                "names": [],
                                                                                                "nodeType": "FunctionCall",
                                                                                                "src": "24081:39:18",
                                                                                                "tryCall": false,
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "id": 8130,
                                                                                            "name": "_downscaleDown",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 9265,
                                                                                            "src": "24057:14:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                            }
                                                                                        },
                                                                                        "id": 8137,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "functionCall",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "24057:64:18",
                                                                                        "tryCall": false,
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "expression": {
                                                                                        "id": 8126,
                                                                                        "name": "Math",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 2367,
                                                                                        "src": "24027:4:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                            "typeString": "type(library Math)"
                                                                                        }
                                                                                    },
                                                                                    "id": 8127,
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "memberName": "add",
                                                                                    "nodeType": "MemberAccess",
                                                                                    "referencedDeclaration": 2109,
                                                                                    "src": "24027:8:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 8138,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "24027:95:18",
                                                                                "tryCall": false,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            "src": "24005:117:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "id": 8140,
                                                                        "nodeType": "ExpressionStatement",
                                                                        "src": "24005:117:18"
                                                                    }
                                                                ]
                                                            }
                                                        }
                                                    ]
                                                },
                                                "id": 8144,
                                                "nodeType": "IfStatement",
                                                "src": "23196:961:18",
                                                "trueBody": {
                                                    "id": 8095,
                                                    "nodeType": "Block",
                                                    "src": "23208:525:18",
                                                    "statements": [
                                                        {
                                                            "assignments": [
                                                                8056
                                                            ],
                                                            "declarations": [
                                                                {
                                                                    "constant": false,
                                                                    "id": 8056,
                                                                    "mutability": "mutable",
                                                                    "name": "subscription",
                                                                    "nodeType": "VariableDeclaration",
                                                                    "scope": 8095,
                                                                    "src": "23227:46:18",
                                                                    "stateVariable": false,
                                                                    "storageLocation": "memory",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_memory_ptr",
                                                                        "typeString": "struct IMarketMaker.subscriptions"
                                                                    },
                                                                    "typeName": {
                                                                        "id": 8055,
                                                                        "name": "IMarketMaker.subscriptions",
                                                                        "nodeType": "UserDefinedTypeName",
                                                                        "referencedDeclaration": 11714,
                                                                        "src": "23227:26:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                                            "typeString": "struct IMarketMaker.subscriptions"
                                                                        }
                                                                    },
                                                                    "visibility": "internal"
                                                                }
                                                            ],
                                                            "id": 8076,
                                                            "initialValue": {
                                                                "arguments": [
                                                                    {
                                                                        "id": 8059,
                                                                        "name": "investor",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7987,
                                                                        "src": "23336:8:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 8060,
                                                                        "name": "asset",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7983,
                                                                        "src": "23374:5:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "arguments": [],
                                                                        "expression": {
                                                                            "argumentTypes": [],
                                                                            "expression": {
                                                                                "arguments": [
                                                                                    {
                                                                                        "id": 8062,
                                                                                        "name": "asset",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 7983,
                                                                                        "src": "23414:5:18",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "id": 8061,
                                                                                    "name": "ERC20",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2860,
                                                                                    "src": "23408:5:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                                                        "typeString": "type(contract ERC20)"
                                                                                    }
                                                                                },
                                                                                "id": 8063,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "typeConversion",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "23408:12:18",
                                                                                "tryCall": false,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                                                    "typeString": "contract ERC20"
                                                                                }
                                                                            },
                                                                            "id": 8064,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "name",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 2441,
                                                                            "src": "23408:17:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$",
                                                                                "typeString": "function () view external returns (string memory)"
                                                                            }
                                                                        },
                                                                        "id": 8065,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "23408:19:18",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                            "typeString": "string memory"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 8066,
                                                                        "name": "amount",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8009,
                                                                        "src": "23458:6:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "arguments": [
                                                                            {
                                                                                "id": 8068,
                                                                                "name": "sAmount",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 7989,
                                                                                "src": "23510:7:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "arguments": [
                                                                                    {
                                                                                        "arguments": [
                                                                                            {
                                                                                                "id": 8071,
                                                                                                "name": "security",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 7981,
                                                                                                "src": "23548:8:18",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            }
                                                                                        ],
                                                                                        "expression": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "id": 8070,
                                                                                            "name": "IERC20",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 2938,
                                                                                            "src": "23541:6:18",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                                "typeString": "type(contract IERC20)"
                                                                                            }
                                                                                        },
                                                                                        "id": 8072,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "kind": "typeConversion",
                                                                                        "lValueRequested": false,
                                                                                        "names": [],
                                                                                        "nodeType": "FunctionCall",
                                                                                        "src": "23541:16:18",
                                                                                        "tryCall": false,
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                            "typeString": "contract IERC20"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                            "typeString": "contract IERC20"
                                                                                        }
                                                                                    ],
                                                                                    "id": 8069,
                                                                                    "name": "_computeScalingFactor",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 9248,
                                                                                    "src": "23519:21:18",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                                                    }
                                                                                },
                                                                                "id": 8073,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "functionCall",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "23519:39:18",
                                                                                "tryCall": false,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "id": 8067,
                                                                            "name": "_downscaleDown",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 9265,
                                                                            "src": "23495:14:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 8074,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "23495:64:18",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                            "typeString": "string memory"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "id": 8057,
                                                                        "name": "IMarketMaker",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 11881,
                                                                        "src": "23276:12:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_IMarketMaker_$11881_$",
                                                                            "typeString": "type(contract IMarketMaker)"
                                                                        }
                                                                    },
                                                                    "id": 8058,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "subscriptions",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 11714,
                                                                    "src": "23276:26:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_struct$_subscriptions_$11714_storage_ptr_$",
                                                                        "typeString": "type(struct IMarketMaker.subscriptions storage pointer)"
                                                                    }
                                                                },
                                                                "id": 8075,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "structConstructorCall",
                                                                "lValueRequested": false,
                                                                "names": [
                                                                    "investor",
                                                                    "asset",
                                                                    "name",
                                                                    "amount",
                                                                    "traded"
                                                                ],
                                                                "nodeType": "FunctionCall",
                                                                "src": "23276:303:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_subscriptions_$11714_memory_ptr",
                                                                    "typeString": "struct IMarketMaker.subscriptions memory"
                                                                }
                                                            },
                                                            "nodeType": "VariableDeclarationStatement",
                                                            "src": "23227:352:18"
                                                        },
                                                        {
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "id": 8081,
                                                                        "name": "subscription",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8056,
                                                                        "src": "23621:12:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_memory_ptr",
                                                                            "typeString": "struct IMarketMaker.subscriptions memory"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_memory_ptr",
                                                                            "typeString": "struct IMarketMaker.subscriptions memory"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "baseExpression": {
                                                                            "id": 8077,
                                                                            "name": "investors",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6572,
                                                                            "src": "23598:9:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                                "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 8079,
                                                                        "indexExpression": {
                                                                            "id": 8078,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 7979,
                                                                            "src": "23608:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "23598:17:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                            "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 8080,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "push",
                                                                    "nodeType": "MemberAccess",
                                                                    "src": "23598:22:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_subscriptions_$11714_storage_$returns$__$",
                                                                        "typeString": "function (struct IMarketMaker.subscriptions storage ref)"
                                                                    }
                                                                },
                                                                "id": 8082,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "23598:36:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 8083,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "23598:36:18"
                                                        },
                                                        {
                                                            "expression": {
                                                                "id": 8093,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "baseExpression": {
                                                                        "baseExpression": {
                                                                            "id": 8084,
                                                                            "name": "subscriberIndex",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6578,
                                                                            "src": "23656:15:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                                "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                                            }
                                                                        },
                                                                        "id": 8087,
                                                                        "indexExpression": {
                                                                            "id": 8085,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 7979,
                                                                            "src": "23672:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "23656:23:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                            "typeString": "mapping(address => uint256)"
                                                                        }
                                                                    },
                                                                    "id": 8088,
                                                                    "indexExpression": {
                                                                        "id": 8086,
                                                                        "name": "investor",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 7987,
                                                                        "src": "23680:8:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "23656:33:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "expression": {
                                                                        "baseExpression": {
                                                                            "id": 8089,
                                                                            "name": "investors",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6572,
                                                                            "src": "23692:9:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                                "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 8091,
                                                                        "indexExpression": {
                                                                            "id": 8090,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 7979,
                                                                            "src": "23702:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "23692:17:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                            "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 8092,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "length",
                                                                    "nodeType": "MemberAccess",
                                                                    "src": "23692:24:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "23656:60:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 8094,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "23656:60:18"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                }
                            ]
                        },
                        "functionSelector": "8ac316f1",
                        "id": 8225,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "id": 7995,
                                        "name": "poolId",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7979,
                                        "src": "22789:6:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    {
                                        "expression": {
                                            "id": 7996,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "22797:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 7997,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "22797:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 7998,
                                "modifierName": {
                                    "id": 7994,
                                    "name": "onlyPool",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6433,
                                    "src": "22780:8:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_bytes32_$_t_address_$",
                                        "typeString": "modifier (bytes32,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "22780:28:18"
                            }
                        ],
                        "name": "subscribe",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 7993,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "22762:8:18"
                        },
                        "parameters": {
                            "id": 7992,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 7979,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8225,
                                    "src": "22648:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 7978,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22648:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7981,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8225,
                                    "src": "22664:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7980,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22664:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7983,
                                    "mutability": "mutable",
                                    "name": "asset",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8225,
                                    "src": "22682:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7982,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22682:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7985,
                                    "mutability": "mutable",
                                    "name": "cAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8225,
                                    "src": "22697:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7984,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22697:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7987,
                                    "mutability": "mutable",
                                    "name": "investor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8225,
                                    "src": "22714:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 7986,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22714:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7989,
                                    "mutability": "mutable",
                                    "name": "sAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8225,
                                    "src": "22732:15:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 7988,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22732:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 7991,
                                    "mutability": "mutable",
                                    "name": "paidIn",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8225,
                                    "src": "22749:11:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                    },
                                    "typeName": {
                                        "id": 7990,
                                        "name": "bool",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "22749:4:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "22647:114:18"
                        },
                        "returnParameters": {
                            "id": 7999,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "22809:0:18"
                        },
                        "scope": 9283,
                        "src": "22629:2164:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11811
                        ],
                        "body": {
                            "id": 8246,
                            "nodeType": "Block",
                            "src": "25144:43:18",
                            "statements": [
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "id": 8242,
                                            "name": "investors",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6572,
                                            "src": "25162:9:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                            }
                                        },
                                        "id": 8244,
                                        "indexExpression": {
                                            "id": 8243,
                                            "name": "poolId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8228,
                                            "src": "25172:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "25162:17:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                            "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 8241,
                                    "id": 8245,
                                    "nodeType": "Return",
                                    "src": "25155:24:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 8226,
                            "nodeType": "StructuredDocumentation",
                            "src": "24801:179:18",
                            "text": "Fetches investors (subscribers) to a primary issue pool\n@param   poolId identifier for a primary issue pool for which subscribers are to be returned"
                        },
                        "functionSelector": "bfa0caa7",
                        "id": 8247,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 8232,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "25066:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 8233,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "25066:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "baseExpression": {
                                            "id": 8234,
                                            "name": "poolSecurity",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6592,
                                            "src": "25078:12:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 8236,
                                        "indexExpression": {
                                            "id": 8235,
                                            "name": "poolId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8228,
                                            "src": "25091:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "25078:20:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 8237,
                                "modifierName": {
                                    "id": 8231,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6512,
                                    "src": "25049:16:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "25049:50:18"
                            }
                        ],
                        "name": "getSubscribers",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 8230,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "25026:8:18"
                        },
                        "parameters": {
                            "id": 8229,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8228,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8247,
                                    "src": "25010:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 8227,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25010:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "25009:16:18"
                        },
                        "returnParameters": {
                            "id": 8241,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8240,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8247,
                                    "src": "25108:35:18",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct IMarketMaker.subscriptions[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 8238,
                                            "name": "IMarketMaker.subscriptions",
                                            "nodeType": "UserDefinedTypeName",
                                            "referencedDeclaration": 11714,
                                            "src": "25108:26:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_subscriptions_$11714_storage_ptr",
                                                "typeString": "struct IMarketMaker.subscriptions"
                                            }
                                        },
                                        "id": 8239,
                                        "nodeType": "ArrayTypeName",
                                        "src": "25108:28:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_ptr",
                                            "typeString": "struct IMarketMaker.subscriptions[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "25107:37:18"
                        },
                        "scope": 9283,
                        "src": "24986:201:18",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11803
                        ],
                        "body": {
                            "id": 8399,
                            "nodeType": "Block",
                            "src": "25435:1164:18",
                            "statements": [
                                {
                                    "assignments": [
                                        8260
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8260,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8399,
                                            "src": "25446:16:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 8259,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "25446:7:18",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8261,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "25446:16:18"
                                },
                                {
                                    "assignments": [
                                        8263
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8263,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8399,
                                            "src": "25473:14:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 8262,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "25473:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8264,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "25473:14:18"
                                },
                                {
                                    "assignments": [
                                        8266
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8266,
                                            "mutability": "mutable",
                                            "name": "length",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8399,
                                            "src": "25498:14:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8265,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "25498:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8272,
                                    "initialValue": {
                                        "expression": {
                                            "expression": {
                                                "baseExpression": {
                                                    "id": 8267,
                                                    "name": "issues",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6567,
                                                    "src": "25515:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_primary_$11703_storage_$",
                                                        "typeString": "mapping(address => struct IMarketMaker.primary storage ref)"
                                                    }
                                                },
                                                "id": 8269,
                                                "indexExpression": {
                                                    "id": 8268,
                                                    "name": "security",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8250,
                                                    "src": "25522:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "25515:16:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_primary_$11703_storage",
                                                    "typeString": "struct IMarketMaker.primary storage ref"
                                                }
                                            },
                                            "id": 8270,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "pools",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11700,
                                            "src": "25515:22:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                "typeString": "bytes32[] storage ref"
                                            }
                                        },
                                        "id": 8271,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "25515:29:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "25498:46:18"
                                },
                                {
                                    "body": {
                                        "id": 8397,
                                        "nodeType": "Block",
                                        "src": "25586:1006:18",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "id": 8290,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "id": 8283,
                                                        "name": "poolId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8263,
                                                        "src": "25603:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "baseExpression": {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "id": 8284,
                                                                    "name": "issues",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6567,
                                                                    "src": "25612:6:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_primary_$11703_storage_$",
                                                                        "typeString": "mapping(address => struct IMarketMaker.primary storage ref)"
                                                                    }
                                                                },
                                                                "id": 8286,
                                                                "indexExpression": {
                                                                    "id": 8285,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8250,
                                                                    "src": "25619:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "25612:16:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_primary_$11703_storage",
                                                                    "typeString": "struct IMarketMaker.primary storage ref"
                                                                }
                                                            },
                                                            "id": 8287,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "pools",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11700,
                                                            "src": "25612:22:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                "typeString": "bytes32[] storage ref"
                                                            }
                                                        },
                                                        "id": 8289,
                                                        "indexExpression": {
                                                            "id": 8288,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8274,
                                                            "src": "25635:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "25612:25:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "src": "25603:34:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "id": 8291,
                                                "nodeType": "ExpressionStatement",
                                                "src": "25603:34:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 8300,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "id": 8292,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8260,
                                                        "src": "25652:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "arguments": [],
                                                        "expression": {
                                                            "argumentTypes": [],
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "baseExpression": {
                                                                            "id": 8294,
                                                                            "name": "pools",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6588,
                                                                            "src": "25681:5:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                "typeString": "mapping(bytes32 => address)"
                                                                            }
                                                                        },
                                                                        "id": 8296,
                                                                        "indexExpression": {
                                                                            "id": 8295,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8263,
                                                                            "src": "25687:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "25681:13:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 8293,
                                                                    "name": "IPrimaryIssuePool",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 12016,
                                                                    "src": "25663:17:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IPrimaryIssuePool_$12016_$",
                                                                        "typeString": "type(contract IPrimaryIssuePool)"
                                                                    }
                                                                },
                                                                "id": 8297,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "25663:32:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IPrimaryIssuePool_$12016",
                                                                    "typeString": "contract IPrimaryIssuePool"
                                                                }
                                                            },
                                                            "id": 8298,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "getCurrency",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11995,
                                                            "src": "25663:44:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                                "typeString": "function () view external returns (address)"
                                                            }
                                                        },
                                                        "id": 8299,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "25663:46:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "25652:57:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 8301,
                                                "nodeType": "ExpressionStatement",
                                                "src": "25652:57:18"
                                            },
                                            {
                                                "assignments": [
                                                    8305,
                                                    null,
                                                    null
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8305,
                                                        "mutability": "mutable",
                                                        "name": "tokens",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 8397,
                                                        "src": "25764:22:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "memory",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                            "typeString": "contract IERC20[]"
                                                        },
                                                        "typeName": {
                                                            "baseType": {
                                                                "id": 8303,
                                                                "name": "IERC20",
                                                                "nodeType": "UserDefinedTypeName",
                                                                "referencedDeclaration": 2938,
                                                                "src": "25764:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            },
                                                            "id": 8304,
                                                            "nodeType": "ArrayTypeName",
                                                            "src": "25764:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_storage_ptr",
                                                                "typeString": "contract IERC20[]"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    },
                                                    null,
                                                    null
                                                ],
                                                "id": 8312,
                                                "initialValue": {
                                                    "arguments": [
                                                        {
                                                            "id": 8310,
                                                            "name": "poolId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8263,
                                                            "src": "25822:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 8307,
                                                                    "name": "vault",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6392,
                                                                    "src": "25801:5:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 8306,
                                                                "name": "IVault",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3688,
                                                                "src": "25794:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                                    "typeString": "type(contract IVault)"
                                                                }
                                                            },
                                                            "id": 8308,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "25794:13:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IVault_$3688",
                                                                "typeString": "contract IVault"
                                                            }
                                                        },
                                                        "id": 8309,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "getPoolTokens",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3444,
                                                        "src": "25794:27:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                                                            "typeString": "function (bytes32) view external returns (contract IERC20[] memory,uint256[] memory,uint256)"
                                                        }
                                                    },
                                                    "id": 8311,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "25794:35:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                                                        "typeString": "tuple(contract IERC20[] memory,uint256[] memory,uint256)"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "25763:66:18"
                                            },
                                            {
                                                "assignments": [
                                                    8316
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8316,
                                                        "mutability": "mutable",
                                                        "name": "assets",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 8397,
                                                        "src": "25844:22:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "memory",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                            "typeString": "contract IAsset[]"
                                                        },
                                                        "typeName": {
                                                            "baseType": {
                                                                "id": 8314,
                                                                "name": "IAsset",
                                                                "nodeType": "UserDefinedTypeName",
                                                                "referencedDeclaration": 3127,
                                                                "src": "25844:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IAsset_$3127",
                                                                    "typeString": "contract IAsset"
                                                                }
                                                            },
                                                            "id": 8315,
                                                            "nodeType": "ArrayTypeName",
                                                            "src": "25844:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_storage_ptr",
                                                                "typeString": "contract IAsset[]"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8320,
                                                "initialValue": {
                                                    "arguments": [
                                                        {
                                                            "id": 8318,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8305,
                                                            "src": "25892:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                "typeString": "contract IERC20[] memory"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                "typeString": "contract IERC20[] memory"
                                                            }
                                                        ],
                                                        "id": 8317,
                                                        "name": "_convertERC20sToAssets",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9213,
                                                        "src": "25869:22:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$returns$_t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr_$",
                                                            "typeString": "function (contract IERC20[] memory) pure returns (contract IAsset[] memory)"
                                                        }
                                                    },
                                                    "id": 8319,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "25869:30:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                        "typeString": "contract IAsset[] memory"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "25844:55:18"
                                            },
                                            {
                                                "assignments": [
                                                    8325
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8325,
                                                        "mutability": "mutable",
                                                        "name": "amountsOut",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 8397,
                                                        "src": "25914:27:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "memory",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                            "typeString": "uint256[]"
                                                        },
                                                        "typeName": {
                                                            "baseType": {
                                                                "id": 8323,
                                                                "name": "uint256",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "25914:7:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 8324,
                                                            "nodeType": "ArrayTypeName",
                                                            "src": "25914:9:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                                                "typeString": "uint256[]"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8332,
                                                "initialValue": {
                                                    "arguments": [
                                                        {
                                                            "expression": {
                                                                "id": 8329,
                                                                "name": "tokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8305,
                                                                "src": "25958:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                    "typeString": "contract IERC20[] memory"
                                                                }
                                                            },
                                                            "id": 8330,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "length",
                                                            "nodeType": "MemberAccess",
                                                            "src": "25958:13:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 8328,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "NewExpression",
                                                        "src": "25944:13:18",
                                                        "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": 8326,
                                                                "name": "uint256",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "25948:7:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "id": 8327,
                                                            "nodeType": "ArrayTypeName",
                                                            "src": "25948:9:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                                                "typeString": "uint256[]"
                                                            }
                                                        }
                                                    },
                                                    "id": 8331,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "25944:28:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                        "typeString": "uint256[] memory"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "25914:58:18"
                                            },
                                            {
                                                "assignments": [
                                                    8336
                                                ],
                                                "declarations": [
                                                    {
                                                        "constant": false,
                                                        "id": 8336,
                                                        "mutability": "mutable",
                                                        "name": "request",
                                                        "nodeType": "VariableDeclaration",
                                                        "scope": 8397,
                                                        "src": "25987:37:18",
                                                        "stateVariable": false,
                                                        "storageLocation": "memory",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                                            "typeString": "struct IVault.ExitPoolRequest"
                                                        },
                                                        "typeName": {
                                                            "id": 8335,
                                                            "name": "IVault.ExitPoolRequest",
                                                            "nodeType": "UserDefinedTypeName",
                                                            "referencedDeclaration": 3490,
                                                            "src": "25987:22:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_storage_ptr",
                                                                "typeString": "struct IVault.ExitPoolRequest"
                                                            }
                                                        },
                                                        "visibility": "internal"
                                                    }
                                                ],
                                                "id": 8351,
                                                "initialValue": {
                                                    "arguments": [
                                                        {
                                                            "id": 8339,
                                                            "name": "assets",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8316,
                                                            "src": "26077:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                                "typeString": "contract IAsset[] memory"
                                                            }
                                                        },
                                                        {
                                                            "id": 8340,
                                                            "name": "amountsOut",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8325,
                                                            "src": "26117:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                "typeString": "uint256[] memory"
                                                            }
                                                        },
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "expression": {
                                                                        "id": 8343,
                                                                        "name": "ExitKind",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 11658,
                                                                        "src": "26167:8:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_enum$_ExitKind_$11658_$",
                                                                            "typeString": "type(enum IMarketMaker.ExitKind)"
                                                                        }
                                                                    },
                                                                    "id": 8344,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "memberName": "EXACT_BPT_IN_FOR_TOKENS_OUT",
                                                                    "nodeType": "MemberAccess",
                                                                    "src": "26167:36:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_enum$_ExitKind_$11658",
                                                                        "typeString": "enum IMarketMaker.ExitKind"
                                                                    }
                                                                },
                                                                {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "id": 8347,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "leftExpression": {
                                                                        "id": 8345,
                                                                        "name": "_INITIAL_BPT_SUPPLY",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6403,
                                                                        "src": "26205:19:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "nodeType": "BinaryOperation",
                                                                    "operator": "-",
                                                                    "rightExpression": {
                                                                        "id": 8346,
                                                                        "name": "_DEFAULT_MINIMUM_BPT",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6406,
                                                                        "src": "26227:20:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "src": "26205:42:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_enum$_ExitKind_$11658",
                                                                        "typeString": "enum IMarketMaker.ExitKind"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "id": 8341,
                                                                    "name": "abi",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": -1,
                                                                    "src": "26156:3:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_abi",
                                                                        "typeString": "abi"
                                                                    }
                                                                },
                                                                "id": 8342,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "memberName": "encode",
                                                                "nodeType": "MemberAccess",
                                                                "src": "26156:10:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                                                    "typeString": "function () pure returns (bytes memory)"
                                                                }
                                                            },
                                                            "id": 8348,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "26156:92:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                                "typeString": "bytes memory"
                                                            }
                                                        },
                                                        {
                                                            "hexValue": "66616c7365",
                                                            "id": 8349,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "bool",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "26286:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "value": "false"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                                "typeString": "contract IAsset[] memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                "typeString": "uint256[] memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                                "typeString": "bytes memory"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "id": 8337,
                                                            "name": "IVault",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3688,
                                                            "src": "26027:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                                "typeString": "type(contract IVault)"
                                                            }
                                                        },
                                                        "id": 8338,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "ExitPoolRequest",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3490,
                                                        "src": "26027:22:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_struct$_ExitPoolRequest_$3490_storage_ptr_$",
                                                            "typeString": "type(struct IVault.ExitPoolRequest storage pointer)"
                                                        }
                                                    },
                                                    "id": 8350,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "structConstructorCall",
                                                    "lValueRequested": false,
                                                    "names": [
                                                        "assets",
                                                        "minAmountsOut",
                                                        "userData",
                                                        "toInternalBalance"
                                                    ],
                                                    "nodeType": "FunctionCall",
                                                    "src": "26027:280:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                                        "typeString": "struct IVault.ExitPoolRequest memory"
                                                    }
                                                },
                                                "nodeType": "VariableDeclarationStatement",
                                                "src": "25987:320:18"
                                            },
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "id": 8356,
                                                            "name": "poolId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8263,
                                                            "src": "26354:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "id": 8359,
                                                                    "name": "this",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": -28,
                                                                    "src": "26370:4:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                        "typeString": "contract PrimaryIssueManager"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                        "typeString": "contract PrimaryIssueManager"
                                                                    }
                                                                ],
                                                                "id": 8358,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "26362:7:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": {
                                                                    "id": 8357,
                                                                    "name": "address",
                                                                    "nodeType": "ElementaryTypeName",
                                                                    "src": "26362:7:18",
                                                                    "typeDescriptions": {}
                                                                }
                                                            },
                                                            "id": 8360,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "26362:13:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "arguments": [
                                                                        {
                                                                            "id": 8365,
                                                                            "name": "this",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": -28,
                                                                            "src": "26393:4:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                "typeString": "contract PrimaryIssueManager"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                "typeString": "contract PrimaryIssueManager"
                                                                            }
                                                                        ],
                                                                        "id": 8364,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                        "src": "26385:7:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                            "typeString": "type(address)"
                                                                        },
                                                                        "typeName": {
                                                                            "id": 8363,
                                                                            "name": "address",
                                                                            "nodeType": "ElementaryTypeName",
                                                                            "src": "26385:7:18",
                                                                            "typeDescriptions": {}
                                                                        }
                                                                    },
                                                                    "id": 8366,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "26385:13:18",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 8362,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "26377:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_payable_$",
                                                                    "typeString": "type(address payable)"
                                                                },
                                                                "typeName": {
                                                                    "id": 8361,
                                                                    "name": "address",
                                                                    "nodeType": "ElementaryTypeName",
                                                                    "src": "26377:8:18",
                                                                    "stateMutability": "payable",
                                                                    "typeDescriptions": {}
                                                                }
                                                            },
                                                            "id": 8367,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "26377:22:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            }
                                                        },
                                                        {
                                                            "id": 8368,
                                                            "name": "request",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8336,
                                                            "src": "26401:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                                                "typeString": "struct IVault.ExitPoolRequest memory"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address_payable",
                                                                "typeString": "address payable"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                                                "typeString": "struct IVault.ExitPoolRequest memory"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 8353,
                                                                    "name": "vault",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6392,
                                                                    "src": "26338:5:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 8352,
                                                                "name": "IVault",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 3688,
                                                                "src": "26331:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                                    "typeString": "type(contract IVault)"
                                                                }
                                                            },
                                                            "id": 8354,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "26331:13:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IVault_$3688",
                                                                "typeString": "contract IVault"
                                                            }
                                                        },
                                                        "id": 8355,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "exitPool",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3479,
                                                        "src": "26331:22:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_address_payable_$_t_struct$_ExitPoolRequest_$3490_memory_ptr_$returns$__$",
                                                            "typeString": "function (bytes32,address,address payable,struct IVault.ExitPoolRequest memory) external"
                                                        }
                                                    },
                                                    "id": 8369,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "26331:78:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 8370,
                                                "nodeType": "ExpressionStatement",
                                                "src": "26331:78:18"
                                            },
                                            {
                                                "eventCall": {
                                                    "arguments": [
                                                        {
                                                            "id": 8372,
                                                            "name": "poolId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8263,
                                                            "src": "26438:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "id": 8373,
                                                            "name": "security",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8250,
                                                            "src": "26446:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "expression": {
                                                                "id": 8374,
                                                                "name": "block",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": -4,
                                                                "src": "26456:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_magic_block",
                                                                    "typeString": "block"
                                                                }
                                                            },
                                                            "id": 8375,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "timestamp",
                                                            "nodeType": "MemberAccess",
                                                            "src": "26456:15:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 8371,
                                                        "name": "closures",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6672,
                                                        "src": "26429:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (bytes32,address,uint256)"
                                                        }
                                                    },
                                                    "id": 8376,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "26429:43:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 8377,
                                                "nodeType": "EmitStatement",
                                                "src": "26424:48:18"
                                            },
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "id": 8382,
                                                                    "name": "issues",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6567,
                                                                    "src": "26513:6:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_primary_$11703_storage_$",
                                                                        "typeString": "mapping(address => struct IMarketMaker.primary storage ref)"
                                                                    }
                                                                },
                                                                "id": 8384,
                                                                "indexExpression": {
                                                                    "id": 8383,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8250,
                                                                    "src": "26520:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "26513:16:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_primary_$11703_storage",
                                                                    "typeString": "struct IMarketMaker.primary storage ref"
                                                                }
                                                            },
                                                            "id": 8385,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "issuer",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11702,
                                                            "src": "26513:23:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "arguments": [
                                                                        {
                                                                            "id": 8392,
                                                                            "name": "this",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": -28,
                                                                            "src": "26573:4:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                "typeString": "contract PrimaryIssueManager"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                "typeString": "contract PrimaryIssueManager"
                                                                            }
                                                                        ],
                                                                        "id": 8391,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": true,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "ElementaryTypeNameExpression",
                                                                        "src": "26565:7:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_address_$",
                                                                            "typeString": "type(address)"
                                                                        },
                                                                        "typeName": {
                                                                            "id": 8390,
                                                                            "name": "address",
                                                                            "nodeType": "ElementaryTypeName",
                                                                            "src": "26565:7:18",
                                                                            "typeDescriptions": {}
                                                                        }
                                                                    },
                                                                    "id": 8393,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "26565:13:18",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "arguments": [
                                                                        {
                                                                            "id": 8387,
                                                                            "name": "security",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8250,
                                                                            "src": "26545:8:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 8386,
                                                                        "name": "IERC20",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2938,
                                                                        "src": "26538:6:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                            "typeString": "type(contract IERC20)"
                                                                        }
                                                                    },
                                                                    "id": 8388,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "26538:16:18",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                        "typeString": "contract IERC20"
                                                                    }
                                                                },
                                                                "id": 8389,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "balanceOf",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 2877,
                                                                "src": "26538:26:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view external returns (uint256)"
                                                                }
                                                            },
                                                            "id": 8394,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "26538:41:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 8379,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8250,
                                                                    "src": "26494:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 8378,
                                                                "name": "IERC20",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2938,
                                                                "src": "26487:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                    "typeString": "type(contract IERC20)"
                                                                }
                                                            },
                                                            "id": 8380,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "26487:16:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        },
                                                        "id": 8381,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "transfer",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 2887,
                                                        "src": "26487:25:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                            "typeString": "function (address,uint256) external returns (bool)"
                                                        }
                                                    },
                                                    "id": 8395,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "26487:93:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "id": 8396,
                                                "nodeType": "ExpressionStatement",
                                                "src": "26487:93:18"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 8279,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "id": 8277,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8274,
                                            "src": "25572:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "id": 8278,
                                            "name": "length",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8266,
                                            "src": "25574:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "25572:8:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 8398,
                                    "initializationExpression": {
                                        "assignments": [
                                            8274
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 8274,
                                                "mutability": "mutable",
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 8398,
                                                "src": "25559:9:18",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 8273,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "25559:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 8276,
                                        "initialValue": {
                                            "hexValue": "30",
                                            "id": 8275,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "25569:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "25559:11:18"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "id": 8281,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "25582:3:18",
                                            "subExpression": {
                                                "id": 8280,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8274,
                                                "src": "25582:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 8282,
                                        "nodeType": "ExpressionStatement",
                                        "src": "25582:3:18"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "25555:1037:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 8248,
                            "nodeType": "StructuredDocumentation",
                            "src": "25195:142:18",
                            "text": "Called by issuer to close subscription of 'security' issued by it\n@param  security    address of security token"
                        },
                        "functionSelector": "c74073a1",
                        "id": 8400,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 8254,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "25413:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 8255,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "25413:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "id": 8256,
                                        "name": "security",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8250,
                                        "src": "25425:8:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 8257,
                                "modifierName": {
                                    "id": 8253,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6512,
                                    "src": "25396:16:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "25396:38:18"
                            }
                        ],
                        "name": "close",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 8252,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "25378:8:18"
                        },
                        "parameters": {
                            "id": 8251,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8250,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8400,
                                    "src": "25360:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8249,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "25360:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "25359:18:18"
                        },
                        "returnParameters": {
                            "id": 8258,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "25435:0:18"
                        },
                        "scope": 9283,
                        "src": "25345:1254:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11822
                        ],
                        "body": {
                            "id": 8427,
                            "nodeType": "Block",
                            "src": "27264:58:18",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 8421,
                                                "name": "poolid",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8403,
                                                "src": "27284:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 8422,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8405,
                                                "src": "27292:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8423,
                                                "name": "amnt",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8407,
                                                "src": "27302:4:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 8424,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8409,
                                                "src": "27308:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 8420,
                                            "name": "onAccept",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8656,
                                            "src": "27275:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_address_$returns$__$",
                                                "typeString": "function (bytes32,address,uint256,address)"
                                            }
                                        },
                                        "id": 8425,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27275:39:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8426,
                                    "nodeType": "ExpressionStatement",
                                    "src": "27275:39:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 8401,
                            "nodeType": "StructuredDocumentation",
                            "src": "26611:498:18",
                            "text": "Called by issuer to accept subscription to issue by investor\n@param  poolid      identifier of primary issue pool in which subscription is made by investor\n@param  investor    address of investor (subscriber)\n@param  amnt        amount of investment (subscription capital) accepted by issuer for which allotment of security tokens are made to investor\n@param  asset       address of asset which is used by investor to subscribe to the issue"
                        },
                        "functionSelector": "8a0c62f1",
                        "id": 8428,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 8413,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "27230:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 8414,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "27230:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "baseExpression": {
                                            "id": 8415,
                                            "name": "poolSecurity",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6592,
                                            "src": "27242:12:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 8417,
                                        "indexExpression": {
                                            "id": 8416,
                                            "name": "poolid",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8403,
                                            "src": "27255:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "27242:20:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 8418,
                                "modifierName": {
                                    "id": 8412,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6512,
                                    "src": "27213:16:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "27213:50:18"
                            }
                        ],
                        "name": "accept",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 8411,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "27195:8:18"
                        },
                        "parameters": {
                            "id": 8410,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8403,
                                    "mutability": "mutable",
                                    "name": "poolid",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8428,
                                    "src": "27132:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 8402,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27132:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8405,
                                    "mutability": "mutable",
                                    "name": "investor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8428,
                                    "src": "27148:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8404,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27148:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8407,
                                    "mutability": "mutable",
                                    "name": "amnt",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8428,
                                    "src": "27166:12:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8406,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27166:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8409,
                                    "mutability": "mutable",
                                    "name": "asset",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8428,
                                    "src": "27180:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8408,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27180:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "27131:63:18"
                        },
                        "returnParameters": {
                            "id": 8419,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "27264:0:18"
                        },
                        "scope": 9283,
                        "src": "27116:206:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 8655,
                            "nodeType": "Block",
                            "src": "27427:1670:18",
                            "statements": [
                                {
                                    "assignments": [
                                        8440
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8440,
                                            "mutability": "mutable",
                                            "name": "i",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8655,
                                            "src": "27438:9:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8439,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "27438:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8446,
                                    "initialValue": {
                                        "baseExpression": {
                                            "baseExpression": {
                                                "id": 8441,
                                                "name": "subscriberIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6578,
                                                "src": "27450:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                    "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                }
                                            },
                                            "id": 8443,
                                            "indexExpression": {
                                                "id": 8442,
                                                "name": "poolid",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8430,
                                                "src": "27466:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "27450:23:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 8445,
                                        "indexExpression": {
                                            "id": 8444,
                                            "name": "investor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8432,
                                            "src": "27474:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "27450:33:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "27438:45:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8450,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 8448,
                                                    "name": "i",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8440,
                                                    "src": "27502:1:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">",
                                                "rightExpression": {
                                                    "hexValue": "30",
                                                    "id": 8449,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "27504:1:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "27502:3:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "4e6f207375627363726962657220666f756e64",
                                                "id": 8451,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "27507:21:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_e2f2c390dc65fbe57761f20efd170b5425064fa5f1d6f055b666c7e32602b996",
                                                    "typeString": "literal_string \"No subscriber found\""
                                                },
                                                "value": "No subscriber found"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_e2f2c390dc65fbe57761f20efd170b5425064fa5f1d6f055b666c7e32602b996",
                                                    "typeString": "literal_string \"No subscriber found\""
                                                }
                                            ],
                                            "id": 8447,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "27494:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8452,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27494:35:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8453,
                                    "nodeType": "ExpressionStatement",
                                    "src": "27494:35:18"
                                },
                                {
                                    "expression": {
                                        "id": 8458,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 8454,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8440,
                                            "src": "27540:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 8457,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "id": 8455,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8440,
                                                "src": "27544:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "-",
                                            "rightExpression": {
                                                "hexValue": "31",
                                                "id": 8456,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "27546:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_1_by_1",
                                                    "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                            },
                                            "src": "27544:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "27540:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8459,
                                    "nodeType": "ExpressionStatement",
                                    "src": "27540:7:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 8468,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8461,
                                                                "name": "investors",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6572,
                                                                "src": "27566:9:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                }
                                                            },
                                                            "id": 8463,
                                                            "indexExpression": {
                                                                "id": 8462,
                                                                "name": "poolid",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8430,
                                                                "src": "27576:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "27566:17:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                            }
                                                        },
                                                        "id": 8465,
                                                        "indexExpression": {
                                                            "id": 8464,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8440,
                                                            "src": "27584:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "27566:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                        }
                                                    },
                                                    "id": 8466,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "investor",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 11705,
                                                    "src": "27566:29:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "id": 8467,
                                                    "name": "investor",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8432,
                                                    "src": "27597:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "27566:39:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "496e76616c696420616c6c6f746d656e742073756273637269626572",
                                                "id": 8469,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "27607:30:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_296dcba4b50d73bfb50d0811a89e5ef1301d4292c5de07228a95f3a9b7bad615",
                                                    "typeString": "literal_string \"Invalid allotment subscriber\""
                                                },
                                                "value": "Invalid allotment subscriber"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_296dcba4b50d73bfb50d0811a89e5ef1301d4292c5de07228a95f3a9b7bad615",
                                                    "typeString": "literal_string \"Invalid allotment subscriber\""
                                                }
                                            ],
                                            "id": 8460,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "27558:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8470,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27558:80:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8471,
                                    "nodeType": "ExpressionStatement",
                                    "src": "27558:80:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8480,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8473,
                                                                "name": "investors",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6572,
                                                                "src": "27657:9:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                }
                                                            },
                                                            "id": 8475,
                                                            "indexExpression": {
                                                                "id": 8474,
                                                                "name": "poolid",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8430,
                                                                "src": "27667:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "27657:17:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                            }
                                                        },
                                                        "id": 8477,
                                                        "indexExpression": {
                                                            "id": 8476,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8440,
                                                            "src": "27675:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "27657:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                        }
                                                    },
                                                    "id": 8478,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "amount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 11711,
                                                    "src": "27657:27:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">=",
                                                "rightExpression": {
                                                    "id": 8479,
                                                    "name": "amnt",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8434,
                                                    "src": "27688:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "src": "27657:35:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "496e636f727265637420616c6c6f746d656e7420616d6f756e74",
                                                "id": 8481,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "27694:28:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_e16a36465404b2599e32fb42c806d4f4de937fefad57ab99871838ab869ff264",
                                                    "typeString": "literal_string \"Incorrect allotment amount\""
                                                },
                                                "value": "Incorrect allotment amount"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_e16a36465404b2599e32fb42c806d4f4de937fefad57ab99871838ab869ff264",
                                                    "typeString": "literal_string \"Incorrect allotment amount\""
                                                }
                                            ],
                                            "id": 8472,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "27649:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8482,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27649:74:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8483,
                                    "nodeType": "ExpressionStatement",
                                    "src": "27649:74:18"
                                },
                                {
                                    "assignments": [
                                        8485
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8485,
                                            "mutability": "mutable",
                                            "name": "prorataAllotment",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8655,
                                            "src": "27744:24:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8484,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "27744:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8486,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "27744:24:18"
                                },
                                {
                                    "assignments": [
                                        8488
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8488,
                                            "mutability": "mutable",
                                            "name": "securitiesAlloted",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8655,
                                            "src": "27779:25:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8487,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "27779:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8489,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "27779:25:18"
                                },
                                {
                                    "assignments": [
                                        8491
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8491,
                                            "mutability": "mutable",
                                            "name": "securityReturned",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8655,
                                            "src": "27815:24:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8490,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "27815:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8492,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "27815:24:18"
                                },
                                {
                                    "assignments": [
                                        8494
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8494,
                                            "mutability": "mutable",
                                            "name": "cashRefund",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8655,
                                            "src": "27850:18:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8493,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "27850:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8495,
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "27850:18:18"
                                },
                                {
                                    "assignments": [
                                        8497
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8497,
                                            "mutability": "mutable",
                                            "name": "issued",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8655,
                                            "src": "27972:14:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 8496,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "27972:7:18",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8505,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "baseExpression": {
                                                            "id": 8499,
                                                            "name": "pools",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6588,
                                                            "src": "28007:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 8501,
                                                        "indexExpression": {
                                                            "id": 8500,
                                                            "name": "poolid",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8430,
                                                            "src": "28013:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "28007:13:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 8498,
                                                    "name": "IPrimaryIssuePool",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12016,
                                                    "src": "27989:17:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IPrimaryIssuePool_$12016_$",
                                                        "typeString": "type(contract IPrimaryIssuePool)"
                                                    }
                                                },
                                                "id": 8502,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "27989:32:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IPrimaryIssuePool_$12016",
                                                    "typeString": "contract IPrimaryIssuePool"
                                                }
                                            },
                                            "id": 8503,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getSecurity",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11990,
                                            "src": "27989:44:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                "typeString": "function () view external returns (address)"
                                            }
                                        },
                                        "id": 8504,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27989:46:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "27972:63:18"
                                },
                                {
                                    "expression": {
                                        "id": 8517,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 8506,
                                            "name": "prorataAllotment",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8485,
                                            "src": "28086:16:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "id": 8509,
                                                    "name": "amnt",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8434,
                                                    "src": "28124:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8510,
                                                                "name": "investors",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6572,
                                                                "src": "28130:9:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                }
                                                            },
                                                            "id": 8512,
                                                            "indexExpression": {
                                                                "id": 8511,
                                                                "name": "poolid",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8430,
                                                                "src": "28140:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "28130:17:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                            }
                                                        },
                                                        "id": 8514,
                                                        "indexExpression": {
                                                            "id": 8513,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8440,
                                                            "src": "28148:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "28130:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                        }
                                                    },
                                                    "id": 8515,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "amount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 11711,
                                                    "src": "28130:27:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 8507,
                                                    "name": "FixedPoint",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 780,
                                                    "src": "28105:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                        "typeString": "type(library FixedPoint)"
                                                    }
                                                },
                                                "id": 8508,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "divDown",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 631,
                                                "src": "28105:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 8516,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "28105:53:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "28086:72:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8518,
                                    "nodeType": "ExpressionStatement",
                                    "src": "28086:72:18"
                                },
                                {
                                    "expression": {
                                        "id": 8535,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "expression": {
                                                "baseExpression": {
                                                    "baseExpression": {
                                                        "id": 8519,
                                                        "name": "investors",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6572,
                                                        "src": "28169:9:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                            "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                        }
                                                    },
                                                    "id": 8522,
                                                    "indexExpression": {
                                                        "id": 8520,
                                                        "name": "poolid",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8430,
                                                        "src": "28179:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "28169:17:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                        "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                    }
                                                },
                                                "id": 8523,
                                                "indexExpression": {
                                                    "id": 8521,
                                                    "name": "i",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8440,
                                                    "src": "28187:1:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "28169:20:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                    "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                }
                                            },
                                            "id": 8524,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "memberName": "amount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11711,
                                            "src": "28169:27:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8527,
                                                                "name": "investors",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6572,
                                                                "src": "28208:9:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                }
                                                            },
                                                            "id": 8529,
                                                            "indexExpression": {
                                                                "id": 8528,
                                                                "name": "poolid",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8430,
                                                                "src": "28218:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "28208:17:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                            }
                                                        },
                                                        "id": 8531,
                                                        "indexExpression": {
                                                            "id": 8530,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8440,
                                                            "src": "28226:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "28208:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                        }
                                                    },
                                                    "id": 8532,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "amount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 11711,
                                                    "src": "28208:27:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "id": 8533,
                                                    "name": "amnt",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8434,
                                                    "src": "28237:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 8525,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2367,
                                                    "src": "28199:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 8526,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sub",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 2177,
                                                "src": "28199:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 8534,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "28199:43:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "28169:73:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8536,
                                    "nodeType": "ExpressionStatement",
                                    "src": "28169:73:18"
                                },
                                {
                                    "expression": {
                                        "id": 8544,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 8537,
                                            "name": "cashRefund",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8494,
                                            "src": "28253:10:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "expression": {
                                                "baseExpression": {
                                                    "baseExpression": {
                                                        "id": 8538,
                                                        "name": "investors",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6572,
                                                        "src": "28266:9:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                            "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                        }
                                                    },
                                                    "id": 8540,
                                                    "indexExpression": {
                                                        "id": 8539,
                                                        "name": "poolid",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8430,
                                                        "src": "28276:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "28266:17:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                        "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                    }
                                                },
                                                "id": 8542,
                                                "indexExpression": {
                                                    "id": 8541,
                                                    "name": "i",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8440,
                                                    "src": "28284:1:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "28266:20:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                    "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                }
                                            },
                                            "id": 8543,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "amount",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11711,
                                            "src": "28266:27:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "28253:40:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8545,
                                    "nodeType": "ExpressionStatement",
                                    "src": "28253:40:18"
                                },
                                {
                                    "expression": {
                                        "id": 8566,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 8546,
                                            "name": "securityReturned",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8491,
                                            "src": "28304:16:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8549,
                                                                "name": "investors",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6572,
                                                                "src": "28332:9:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                }
                                                            },
                                                            "id": 8551,
                                                            "indexExpression": {
                                                                "id": 8550,
                                                                "name": "poolid",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8430,
                                                                "src": "28342:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "28332:17:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                            }
                                                        },
                                                        "id": 8553,
                                                        "indexExpression": {
                                                            "id": 8552,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8440,
                                                            "src": "28350:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "28332:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                        }
                                                    },
                                                    "id": 8554,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "traded",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 11713,
                                                    "src": "28332:27:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "arguments": [
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 8557,
                                                                        "name": "investors",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6572,
                                                                        "src": "28380:9:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 8559,
                                                                    "indexExpression": {
                                                                        "id": 8558,
                                                                        "name": "poolid",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8430,
                                                                        "src": "28390:6:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "28380:17:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 8561,
                                                                "indexExpression": {
                                                                    "id": 8560,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8440,
                                                                    "src": "28398:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "28380:20:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                                    "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                                }
                                                            },
                                                            "id": 8562,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "traded",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11713,
                                                            "src": "28380:27:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 8563,
                                                            "name": "prorataAllotment",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8485,
                                                            "src": "28409:16:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "id": 8555,
                                                            "name": "FixedPoint",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 780,
                                                            "src": "28361:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                "typeString": "type(library FixedPoint)"
                                                            }
                                                        },
                                                        "id": 8556,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "mulDown",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 537,
                                                        "src": "28361:18:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 8564,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "28361:65:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 8547,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2367,
                                                    "src": "28323:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 8548,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sub",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 2177,
                                                "src": "28323:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 8565,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "28323:104:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "28304:123:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8567,
                                    "nodeType": "ExpressionStatement",
                                    "src": "28304:123:18"
                                },
                                {
                                    "expression": {
                                        "id": 8583,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 8568,
                                            "name": "securitiesAlloted",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8488,
                                            "src": "28438:17:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "id": 8571,
                                                    "name": "securitiesAlloted",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8488,
                                                    "src": "28467:17:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "arguments": [
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 8574,
                                                                        "name": "investors",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6572,
                                                                        "src": "28505:9:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 8576,
                                                                    "indexExpression": {
                                                                        "id": 8575,
                                                                        "name": "poolid",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8430,
                                                                        "src": "28515:6:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "28505:17:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 8578,
                                                                "indexExpression": {
                                                                    "id": 8577,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8440,
                                                                    "src": "28523:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "28505:20:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                                    "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                                }
                                                            },
                                                            "id": 8579,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "traded",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11713,
                                                            "src": "28505:27:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 8580,
                                                            "name": "prorataAllotment",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8485,
                                                            "src": "28534:16:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "id": 8572,
                                                            "name": "FixedPoint",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 780,
                                                            "src": "28486:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                "typeString": "type(library FixedPoint)"
                                                            }
                                                        },
                                                        "id": 8573,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "mulDown",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 537,
                                                        "src": "28486:18:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 8581,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "28486:65:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 8569,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2367,
                                                    "src": "28458:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 8570,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "add",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 2109,
                                                "src": "28458:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 8582,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "28458:94:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "28438:114:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8584,
                                    "nodeType": "ExpressionStatement",
                                    "src": "28438:114:18"
                                },
                                {
                                    "expression": {
                                        "id": 8599,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 8585,
                                                    "name": "subscribed",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6584,
                                                    "src": "28573:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                        "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                    }
                                                },
                                                "id": 8588,
                                                "indexExpression": {
                                                    "id": 8586,
                                                    "name": "poolid",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8430,
                                                    "src": "28584:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "28573:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 8589,
                                            "indexExpression": {
                                                "id": 8587,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8436,
                                                "src": "28592:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "28573:25:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 8592,
                                                            "name": "subscribed",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6584,
                                                            "src": "28610:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                            }
                                                        },
                                                        "id": 8594,
                                                        "indexExpression": {
                                                            "id": 8593,
                                                            "name": "poolid",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8430,
                                                            "src": "28621:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "28610:18:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 8596,
                                                    "indexExpression": {
                                                        "id": 8595,
                                                        "name": "asset",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8436,
                                                        "src": "28629:5:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "28610:25:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "id": 8597,
                                                    "name": "cashRefund",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8494,
                                                    "src": "28637:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 8590,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2367,
                                                    "src": "28601:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 8591,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sub",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 2177,
                                                "src": "28601:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 8598,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "28601:47:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "28573:75:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8600,
                                    "nodeType": "ExpressionStatement",
                                    "src": "28573:75:18"
                                },
                                {
                                    "eventCall": {
                                        "arguments": [
                                            {
                                                "id": 8602,
                                                "name": "poolid",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8430,
                                                "src": "28672:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 8603,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8432,
                                                "src": "28680:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8604,
                                                "name": "issued",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8497,
                                                "src": "28690:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8605,
                                                "name": "securityReturned",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8491,
                                                "src": "28698:16:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 8606,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8436,
                                                "src": "28716:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8607,
                                                "name": "cashRefund",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8494,
                                                "src": "28723:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 8608,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "28735:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 8609,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "src": "28735:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 8601,
                                            "name": "refunds",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6704,
                                            "src": "28664:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (bytes32,address,address,uint256,address,uint256,uint256)"
                                            }
                                        },
                                        "id": 8610,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "28664:87:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8611,
                                    "nodeType": "EmitStatement",
                                    "src": "28659:92:18"
                                },
                                {
                                    "expression": {
                                        "id": 8618,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 8612,
                                                    "name": "subscriberIndex",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6578,
                                                    "src": "28794:15:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                        "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                    }
                                                },
                                                "id": 8615,
                                                "indexExpression": {
                                                    "id": 8613,
                                                    "name": "poolid",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8430,
                                                    "src": "28810:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "28794:23:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 8616,
                                            "indexExpression": {
                                                "id": 8614,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8432,
                                                "src": "28818:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "28794:33:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "hexValue": "30",
                                            "id": 8617,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "28830:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "28794:37:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8619,
                                    "nodeType": "ExpressionStatement",
                                    "src": "28794:37:18"
                                },
                                {
                                    "eventCall": {
                                        "arguments": [
                                            {
                                                "id": 8621,
                                                "name": "poolid",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8430,
                                                "src": "28858:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 8622,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8432,
                                                "src": "28866:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8623,
                                                "name": "issued",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8497,
                                                "src": "28876:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8624,
                                                "name": "securitiesAlloted",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8488,
                                                "src": "28884:17:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 8625,
                                                "name": "asset",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8436,
                                                "src": "28903:5:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8626,
                                                "name": "amnt",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8434,
                                                "src": "28910:4:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 8627,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "28916:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 8628,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "src": "28916:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 8620,
                                            "name": "allotments",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6688,
                                            "src": "28847:10:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (bytes32,address,address,uint256,address,uint256,uint256)"
                                            }
                                        },
                                        "id": 8629,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "28847:85:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8630,
                                    "nodeType": "EmitStatement",
                                    "src": "28842:90:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 8635,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8432,
                                                "src": "28973:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8636,
                                                                "name": "mmtokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6531,
                                                                "src": "28983:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                }
                                                            },
                                                            "id": 8638,
                                                            "indexExpression": {
                                                                "id": 8637,
                                                                "name": "issued",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8497,
                                                                "src": "28992:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "28983:16:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                            }
                                                        },
                                                        "id": 8640,
                                                        "indexExpression": {
                                                            "id": 8639,
                                                            "name": "asset",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8436,
                                                            "src": "29000:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "28983:23:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                            "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                        }
                                                    },
                                                    "id": 8642,
                                                    "indexExpression": {
                                                        "hexValue": "30",
                                                        "id": 8641,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "29007:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "28983:26:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_token_$11675_storage",
                                                        "typeString": "struct IMarketMaker.token storage ref"
                                                    }
                                                },
                                                "id": 8643,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "owner",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11660,
                                                "src": "28983:32:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8644,
                                                "name": "securityReturned",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8491,
                                                "src": "29017:16:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 8632,
                                                        "name": "issued",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8497,
                                                        "src": "28952:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 8631,
                                                    "name": "IERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2938,
                                                    "src": "28945:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                        "typeString": "type(contract IERC20)"
                                                    }
                                                },
                                                "id": 8633,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "28945:14:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                    "typeString": "contract IERC20"
                                                }
                                            },
                                            "id": 8634,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transferFrom",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2919,
                                            "src": "28945:27:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 8645,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "28945:89:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 8646,
                                    "nodeType": "ExpressionStatement",
                                    "src": "28945:89:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 8651,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8432,
                                                "src": "29068:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8652,
                                                "name": "cashRefund",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8494,
                                                "src": "29078:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 8648,
                                                        "name": "asset",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8436,
                                                        "src": "29052:5:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 8647,
                                                    "name": "IERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2938,
                                                    "src": "29045:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                        "typeString": "type(contract IERC20)"
                                                    }
                                                },
                                                "id": 8649,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "29045:13:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                    "typeString": "contract IERC20"
                                                }
                                            },
                                            "id": 8650,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transfer",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2887,
                                            "src": "29045:22:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 8653,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29045:44:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 8654,
                                    "nodeType": "ExpressionStatement",
                                    "src": "29045:44:18"
                                }
                            ]
                        },
                        "id": 8656,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "onAccept",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 8437,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8430,
                                    "mutability": "mutable",
                                    "name": "poolid",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8656,
                                    "src": "27356:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 8429,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27356:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8432,
                                    "mutability": "mutable",
                                    "name": "investor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8656,
                                    "src": "27372:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8431,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27372:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8434,
                                    "mutability": "mutable",
                                    "name": "amnt",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8656,
                                    "src": "27390:12:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 8433,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27390:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8436,
                                    "mutability": "mutable",
                                    "name": "asset",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8656,
                                    "src": "27404:13:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8435,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "27404:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "27355:63:18"
                        },
                        "returnParameters": {
                            "id": 8438,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "27427:0:18"
                        },
                        "scope": 9283,
                        "src": "27338:1759:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "private"
                    },
                    {
                        "baseFunctions": [
                            11829
                        ],
                        "body": {
                            "id": 8804,
                            "nodeType": "Block",
                            "src": "29475:952:18",
                            "statements": [
                                {
                                    "assignments": [
                                        8673
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8673,
                                            "mutability": "mutable",
                                            "name": "i",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8804,
                                            "src": "29486:9:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8672,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "29486:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8679,
                                    "initialValue": {
                                        "baseExpression": {
                                            "baseExpression": {
                                                "id": 8674,
                                                "name": "subscriberIndex",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6578,
                                                "src": "29498:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                    "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                }
                                            },
                                            "id": 8676,
                                            "indexExpression": {
                                                "id": 8675,
                                                "name": "poolid",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8659,
                                                "src": "29514:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "29498:23:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 8678,
                                        "indexExpression": {
                                            "id": 8677,
                                            "name": "investor",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8661,
                                            "src": "29522:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "29498:33:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "29486:45:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 8683,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 8681,
                                                    "name": "i",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8673,
                                                    "src": "29550:1:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": ">",
                                                "rightExpression": {
                                                    "hexValue": "30",
                                                    "id": 8682,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "29552:1:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "29550:3:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "4e6f207375627363726962657220666f756e64",
                                                "id": 8684,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "29555:21:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_e2f2c390dc65fbe57761f20efd170b5425064fa5f1d6f055b666c7e32602b996",
                                                    "typeString": "literal_string \"No subscriber found\""
                                                },
                                                "value": "No subscriber found"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_e2f2c390dc65fbe57761f20efd170b5425064fa5f1d6f055b666c7e32602b996",
                                                    "typeString": "literal_string \"No subscriber found\""
                                                }
                                            ],
                                            "id": 8680,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "29542:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8685,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29542:35:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8686,
                                    "nodeType": "ExpressionStatement",
                                    "src": "29542:35:18"
                                },
                                {
                                    "expression": {
                                        "id": 8691,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 8687,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8673,
                                            "src": "29588:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 8690,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "id": 8688,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8673,
                                                "src": "29592:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "-",
                                            "rightExpression": {
                                                "hexValue": "31",
                                                "id": 8689,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "29594:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_1_by_1",
                                                    "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                            },
                                            "src": "29592:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "29588:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8692,
                                    "nodeType": "ExpressionStatement",
                                    "src": "29588:7:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 8701,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8694,
                                                                "name": "investors",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6572,
                                                                "src": "29614:9:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                }
                                                            },
                                                            "id": 8696,
                                                            "indexExpression": {
                                                                "id": 8695,
                                                                "name": "poolid",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8659,
                                                                "src": "29624:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "29614:17:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                            }
                                                        },
                                                        "id": 8698,
                                                        "indexExpression": {
                                                            "id": 8697,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8673,
                                                            "src": "29632:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "29614:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                        }
                                                    },
                                                    "id": 8699,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "investor",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 11705,
                                                    "src": "29614:29:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "id": 8700,
                                                    "name": "investor",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8661,
                                                    "src": "29645:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "29614:39:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "496e636f7272656374207375627363726962657220666f7220726566756e64",
                                                "id": 8702,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "29655:33:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_10eba8a3d8966fee286504ebdb526cd9de0cb27fbf20d523deadb65331684b68",
                                                    "typeString": "literal_string \"Incorrect subscriber for refund\""
                                                },
                                                "value": "Incorrect subscriber for refund"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_10eba8a3d8966fee286504ebdb526cd9de0cb27fbf20d523deadb65331684b68",
                                                    "typeString": "literal_string \"Incorrect subscriber for refund\""
                                                }
                                            ],
                                            "id": 8693,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "29606:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 8703,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29606:83:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8704,
                                    "nodeType": "ExpressionStatement",
                                    "src": "29606:83:18"
                                },
                                {
                                    "assignments": [
                                        8706
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8706,
                                            "mutability": "mutable",
                                            "name": "issuedSecurity",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8804,
                                            "src": "29710:22:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 8705,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "29710:7:18",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8710,
                                    "initialValue": {
                                        "baseExpression": {
                                            "id": 8707,
                                            "name": "poolSecurity",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6592,
                                            "src": "29735:12:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 8709,
                                        "indexExpression": {
                                            "id": 8708,
                                            "name": "poolid",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8659,
                                            "src": "29748:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "29735:20:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "29710:45:18"
                                },
                                {
                                    "assignments": [
                                        8712
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8712,
                                            "mutability": "mutable",
                                            "name": "currencySubscribed",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 8804,
                                            "src": "29766:26:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 8711,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "29766:7:18",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8719,
                                    "initialValue": {
                                        "expression": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 8713,
                                                    "name": "investors",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6572,
                                                    "src": "29795:9:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                        "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                    }
                                                },
                                                "id": 8715,
                                                "indexExpression": {
                                                    "id": 8714,
                                                    "name": "poolid",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8659,
                                                    "src": "29805:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "29795:17:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                    "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                }
                                            },
                                            "id": 8717,
                                            "indexExpression": {
                                                "id": 8716,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8673,
                                                "src": "29813:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "29795:20:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                "typeString": "struct IMarketMaker.subscriptions storage ref"
                                            }
                                        },
                                        "id": 8718,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "asset",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 11707,
                                        "src": "29795:26:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "29766:55:18"
                                },
                                {
                                    "expression": {
                                        "id": 8739,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 8720,
                                                    "name": "subscribed",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6584,
                                                    "src": "29841:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                        "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                    }
                                                },
                                                "id": 8723,
                                                "indexExpression": {
                                                    "id": 8721,
                                                    "name": "poolid",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8659,
                                                    "src": "29852:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "29841:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 8724,
                                            "indexExpression": {
                                                "id": 8722,
                                                "name": "currencySubscribed",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8712,
                                                "src": "29860:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "29841:38:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 8727,
                                                            "name": "subscribed",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6584,
                                                            "src": "29891:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                            }
                                                        },
                                                        "id": 8729,
                                                        "indexExpression": {
                                                            "id": 8728,
                                                            "name": "poolid",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8659,
                                                            "src": "29902:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "29891:18:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 8731,
                                                    "indexExpression": {
                                                        "id": 8730,
                                                        "name": "currencySubscribed",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8712,
                                                        "src": "29910:18:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "29891:38:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8732,
                                                                "name": "investors",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6572,
                                                                "src": "29931:9:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                                }
                                                            },
                                                            "id": 8734,
                                                            "indexExpression": {
                                                                "id": 8733,
                                                                "name": "poolid",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8659,
                                                                "src": "29941:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "29931:17:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                                "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                            }
                                                        },
                                                        "id": 8736,
                                                        "indexExpression": {
                                                            "id": 8735,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8673,
                                                            "src": "29949:1:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "29931:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                        }
                                                    },
                                                    "id": 8737,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "amount",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 11711,
                                                    "src": "29931:27:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 8725,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2367,
                                                    "src": "29882:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 8726,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sub",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 2177,
                                                "src": "29882:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 8738,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "29882:77:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "29841:118:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8740,
                                    "nodeType": "ExpressionStatement",
                                    "src": "29841:118:18"
                                },
                                {
                                    "eventCall": {
                                        "arguments": [
                                            {
                                                "id": 8742,
                                                "name": "poolid",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8659,
                                                "src": "29983:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 8743,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8661,
                                                "src": "29991:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 8744,
                                                "name": "issuedSecurity",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8706,
                                                "src": "30001:14:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 8745,
                                                            "name": "investors",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6572,
                                                            "src": "30017:9:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                            }
                                                        },
                                                        "id": 8747,
                                                        "indexExpression": {
                                                            "id": 8746,
                                                            "name": "poolid",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8659,
                                                            "src": "30027:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "30017:17:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                        }
                                                    },
                                                    "id": 8749,
                                                    "indexExpression": {
                                                        "id": 8748,
                                                        "name": "i",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8673,
                                                        "src": "30035:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "30017:20:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                        "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                    }
                                                },
                                                "id": 8750,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "traded",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11713,
                                                "src": "30017:27:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 8751,
                                                "name": "currencySubscribed",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8712,
                                                "src": "30046:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 8752,
                                                            "name": "investors",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6572,
                                                            "src": "30066:9:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                            }
                                                        },
                                                        "id": 8754,
                                                        "indexExpression": {
                                                            "id": 8753,
                                                            "name": "poolid",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8659,
                                                            "src": "30076:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "30066:17:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                        }
                                                    },
                                                    "id": 8756,
                                                    "indexExpression": {
                                                        "id": 8755,
                                                        "name": "i",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8673,
                                                        "src": "30084:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "30066:20:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                        "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                    }
                                                },
                                                "id": 8757,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "amount",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11711,
                                                "src": "30066:27:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 8758,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "30095:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 8759,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "src": "30095:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 8741,
                                            "name": "refunds",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6704,
                                            "src": "29975:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (bytes32,address,address,uint256,address,uint256,uint256)"
                                            }
                                        },
                                        "id": 8760,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29975:136:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8761,
                                    "nodeType": "EmitStatement",
                                    "src": "29970:141:18"
                                },
                                {
                                    "expression": {
                                        "id": 8768,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 8762,
                                                    "name": "subscriberIndex",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6578,
                                                    "src": "30136:15:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                        "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                    }
                                                },
                                                "id": 8765,
                                                "indexExpression": {
                                                    "id": 8763,
                                                    "name": "poolid",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8659,
                                                    "src": "30152:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "30136:23:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 8766,
                                            "indexExpression": {
                                                "id": 8764,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8661,
                                                "src": "30160:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "30136:33:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "hexValue": "30",
                                            "id": 8767,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "30172:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "src": "30136:37:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 8769,
                                    "nodeType": "ExpressionStatement",
                                    "src": "30136:37:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 8774,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8661,
                                                "src": "30224:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 8775,
                                                                "name": "mmtokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6531,
                                                                "src": "30234:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                                    "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                                }
                                                            },
                                                            "id": 8777,
                                                            "indexExpression": {
                                                                "id": 8776,
                                                                "name": "issuedSecurity",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8706,
                                                                "src": "30243:14:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "30234:24:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                                "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                            }
                                                        },
                                                        "id": 8779,
                                                        "indexExpression": {
                                                            "id": 8778,
                                                            "name": "currencySubscribed",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8712,
                                                            "src": "30259:18:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "30234:44:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                            "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                        }
                                                    },
                                                    "id": 8781,
                                                    "indexExpression": {
                                                        "hexValue": "30",
                                                        "id": 8780,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "30279:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "30234:47:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_token_$11675_storage",
                                                        "typeString": "struct IMarketMaker.token storage ref"
                                                    }
                                                },
                                                "id": 8782,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "owner",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11660,
                                                "src": "30234:53:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 8783,
                                                            "name": "investors",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6572,
                                                            "src": "30289:9:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                            }
                                                        },
                                                        "id": 8785,
                                                        "indexExpression": {
                                                            "id": 8784,
                                                            "name": "poolid",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8659,
                                                            "src": "30299:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "30289:17:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                        }
                                                    },
                                                    "id": 8787,
                                                    "indexExpression": {
                                                        "id": 8786,
                                                        "name": "i",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8673,
                                                        "src": "30307:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "30289:20:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                        "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                    }
                                                },
                                                "id": 8788,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "traded",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11713,
                                                "src": "30289:27:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 8771,
                                                        "name": "issuedSecurity",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8706,
                                                        "src": "30195:14:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 8770,
                                                    "name": "IERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2938,
                                                    "src": "30188:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                        "typeString": "type(contract IERC20)"
                                                    }
                                                },
                                                "id": 8772,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "30188:22:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                    "typeString": "contract IERC20"
                                                }
                                            },
                                            "id": 8773,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transferFrom",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2919,
                                            "src": "30188:35:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 8789,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "30188:129:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 8790,
                                    "nodeType": "ExpressionStatement",
                                    "src": "30188:129:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 8795,
                                                "name": "investor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8661,
                                                "src": "30364:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 8796,
                                                            "name": "investors",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6572,
                                                            "src": "30374:9:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                                "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                            }
                                                        },
                                                        "id": 8798,
                                                        "indexExpression": {
                                                            "id": 8797,
                                                            "name": "poolid",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8659,
                                                            "src": "30384:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "30374:17:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                            "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                        }
                                                    },
                                                    "id": 8800,
                                                    "indexExpression": {
                                                        "id": 8799,
                                                        "name": "i",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8673,
                                                        "src": "30392:1:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "30374:20:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_subscriptions_$11714_storage",
                                                        "typeString": "struct IMarketMaker.subscriptions storage ref"
                                                    }
                                                },
                                                "id": 8801,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "amount",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11711,
                                                "src": "30374:27:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 8792,
                                                        "name": "currencySubscribed",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8712,
                                                        "src": "30335:18:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 8791,
                                                    "name": "IERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2938,
                                                    "src": "30328:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                        "typeString": "type(contract IERC20)"
                                                    }
                                                },
                                                "id": 8793,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "30328:26:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                    "typeString": "contract IERC20"
                                                }
                                            },
                                            "id": 8794,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transfer",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2887,
                                            "src": "30328:35:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 8802,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "30328:74:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 8803,
                                    "nodeType": "ExpressionStatement",
                                    "src": "30328:74:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 8657,
                            "nodeType": "StructuredDocumentation",
                            "src": "29109:240:18",
                            "text": "Called by issuer to reject subscription to issue by investor\n@param  poolid      identifier for primary issue pool to which investor has subscribed\n@param  investor    address of investor (subscriber)"
                        },
                        "functionSelector": "3f099028",
                        "id": 8805,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 8665,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "29441:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 8666,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "29441:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "baseExpression": {
                                            "id": 8667,
                                            "name": "poolSecurity",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6592,
                                            "src": "29453:12:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 8669,
                                        "indexExpression": {
                                            "id": 8668,
                                            "name": "poolid",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8659,
                                            "src": "29466:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "29453:20:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 8670,
                                "modifierName": {
                                    "id": 8664,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6512,
                                    "src": "29424:16:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "29424:50:18"
                            }
                        ],
                        "name": "reject",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 8663,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "29406:8:18"
                        },
                        "parameters": {
                            "id": 8662,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8659,
                                    "mutability": "mutable",
                                    "name": "poolid",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8805,
                                    "src": "29372:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 8658,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "29372:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 8661,
                                    "mutability": "mutable",
                                    "name": "investor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8805,
                                    "src": "29388:16:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 8660,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "29388:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "29371:34:18"
                        },
                        "returnParameters": {
                            "id": 8671,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "29475:0:18"
                        },
                        "scope": 9283,
                        "src": "29356:1071:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11834
                        ],
                        "body": {
                            "id": 8832,
                            "nodeType": "Block",
                            "src": "30757:110:18",
                            "statements": [
                                {
                                    "expression": {
                                        "id": 8826,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "components": [
                                                null,
                                                null,
                                                {
                                                    "id": 8819,
                                                    "name": "revshare",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6610,
                                                    "src": "30773:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                null
                                            ],
                                            "id": 8820,
                                            "isConstant": false,
                                            "isInlineArray": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "TupleExpression",
                                            "src": "30768:15:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$__$__$_t_uint256_$__$",
                                                "typeString": "tuple(,,uint256,)"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [],
                                            "expression": {
                                                "argumentTypes": [],
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "id": 8822,
                                                            "name": "distribution",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6414,
                                                            "src": "30800:12:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "id": 8821,
                                                        "name": "IDistribution",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 11001,
                                                        "src": "30786:13:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_IDistribution_$11001_$",
                                                            "typeString": "type(contract IDistribution)"
                                                        }
                                                    },
                                                    "id": 8823,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "30786:27:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IDistribution_$11001",
                                                        "typeString": "contract IDistribution"
                                                    }
                                                },
                                                "id": 8824,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "getRevenueShares",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 10943,
                                                "src": "30786:44:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                                                    "typeString": "function () view external returns (uint256,uint256,uint256,uint256)"
                                                }
                                            },
                                            "id": 8825,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "30786:46:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                                                "typeString": "tuple(uint256,uint256,uint256,uint256)"
                                            }
                                        },
                                        "src": "30768:64:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8827,
                                    "nodeType": "ExpressionStatement",
                                    "src": "30768:64:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 8829,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8808,
                                                "src": "30852:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "id": 8828,
                                            "name": "onSettle",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9136,
                                            "src": "30843:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                                                "typeString": "function (bytes32)"
                                            }
                                        },
                                        "id": 8830,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "30843:16:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 8831,
                                    "nodeType": "ExpressionStatement",
                                    "src": "30843:16:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 8806,
                            "nodeType": "StructuredDocumentation",
                            "src": "30443:205:18",
                            "text": "Called by product issuer to settle distribution of fee income arising from investment underwritten in the primary issue pool\n@param  poolId  identifier for primary issue pool"
                        },
                        "functionSelector": "987757dd",
                        "id": 8833,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 8812,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "30723:3:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 8813,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "30723:10:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "baseExpression": {
                                            "id": 8814,
                                            "name": "poolSecurity",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6592,
                                            "src": "30735:12:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 8816,
                                        "indexExpression": {
                                            "id": 8815,
                                            "name": "poolId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8808,
                                            "src": "30748:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "30735:20:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 8817,
                                "modifierName": {
                                    "id": 8811,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6512,
                                    "src": "30706:16:18",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "30706:50:18"
                            }
                        ],
                        "name": "settle",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 8810,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "30688:8:18"
                        },
                        "parameters": {
                            "id": 8809,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8808,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 8833,
                                    "src": "30672:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 8807,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "30672:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "30671:16:18"
                        },
                        "returnParameters": {
                            "id": 8818,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "30757:0:18"
                        },
                        "scope": 9283,
                        "src": "30656:211:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 9135,
                            "nodeType": "Block",
                            "src": "30921:2434:18",
                            "statements": [
                                {
                                    "assignments": [
                                        8839
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8839,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9135,
                                            "src": "30940:16:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 8838,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "30940:7:18",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8847,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "baseExpression": {
                                                            "id": 8841,
                                                            "name": "pools",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6588,
                                                            "src": "30977:5:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 8843,
                                                        "indexExpression": {
                                                            "id": 8842,
                                                            "name": "poolId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8835,
                                                            "src": "30983:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "30977:13:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 8840,
                                                    "name": "IPrimaryIssuePool",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12016,
                                                    "src": "30959:17:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IPrimaryIssuePool_$12016_$",
                                                        "typeString": "type(contract IPrimaryIssuePool)"
                                                    }
                                                },
                                                "id": 8844,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "30959:32:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IPrimaryIssuePool_$12016",
                                                    "typeString": "contract IPrimaryIssuePool"
                                                }
                                            },
                                            "id": 8845,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getCurrency",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11995,
                                            "src": "30959:44:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                "typeString": "function () view external returns (address)"
                                            }
                                        },
                                        "id": 8846,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "30959:46:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "30940:65:18"
                                },
                                {
                                    "assignments": [
                                        8849
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8849,
                                            "mutability": "mutable",
                                            "name": "issuer",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9135,
                                            "src": "31017:14:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 8848,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "31017:7:18",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8860,
                                    "initialValue": {
                                        "expression": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "baseExpression": {
                                                        "id": 8850,
                                                        "name": "mmtokens",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6531,
                                                        "src": "31034:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$_$",
                                                            "typeString": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))"
                                                        }
                                                    },
                                                    "id": 8854,
                                                    "indexExpression": {
                                                        "baseExpression": {
                                                            "id": 8851,
                                                            "name": "poolSecurity",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6592,
                                                            "src": "31043:12:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 8853,
                                                        "indexExpression": {
                                                            "id": 8852,
                                                            "name": "poolId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8835,
                                                            "src": "31056:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "31043:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "31034:30:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_token_$11675_storage_$dyn_storage_$",
                                                        "typeString": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                    }
                                                },
                                                "id": 8856,
                                                "indexExpression": {
                                                    "id": 8855,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8839,
                                                    "src": "31065:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "31034:40:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_struct$_token_$11675_storage_$dyn_storage",
                                                    "typeString": "struct IMarketMaker.token storage ref[] storage ref"
                                                }
                                            },
                                            "id": 8858,
                                            "indexExpression": {
                                                "hexValue": "30",
                                                "id": 8857,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "31075:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_0_by_1",
                                                    "typeString": "int_const 0"
                                                },
                                                "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "31034:43:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_token_$11675_storage",
                                                "typeString": "struct IMarketMaker.token storage ref"
                                            }
                                        },
                                        "id": 8859,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "owner",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 11660,
                                        "src": "31034:49:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "31017:66:18"
                                },
                                {
                                    "assignments": [
                                        8862
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8862,
                                            "mutability": "mutable",
                                            "name": "subscription",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9135,
                                            "src": "31094:20:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8861,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "31094:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8875,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "baseExpression": {
                                                    "baseExpression": {
                                                        "id": 8864,
                                                        "name": "subscribed",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6584,
                                                        "src": "31126:10:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                            "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                        }
                                                    },
                                                    "id": 8866,
                                                    "indexExpression": {
                                                        "id": 8865,
                                                        "name": "poolId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8835,
                                                        "src": "31137:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "31126:18:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                        "typeString": "mapping(address => uint256)"
                                                    }
                                                },
                                                "id": 8868,
                                                "indexExpression": {
                                                    "id": 8867,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8839,
                                                    "src": "31145:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "31126:28:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "arguments": [
                                                            {
                                                                "id": 8871,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8839,
                                                                "src": "31185:8:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 8870,
                                                            "name": "IERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2938,
                                                            "src": "31178:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                "typeString": "type(contract IERC20)"
                                                            }
                                                        },
                                                        "id": 8872,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "31178:16:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    ],
                                                    "id": 8869,
                                                    "name": "_computeScalingFactor",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9248,
                                                    "src": "31156:21:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                    }
                                                },
                                                "id": 8873,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "31156:39:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 8863,
                                            "name": "_upscale",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9282,
                                            "src": "31117:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 8874,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "31117:79:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "31094:102:18"
                                },
                                {
                                    "assignments": [
                                        8877
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8877,
                                            "mutability": "mutable",
                                            "name": "issuingFee",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9135,
                                            "src": "31207:18:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8876,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "31207:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8904,
                                    "initialValue": {
                                        "condition": {
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 8886,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "baseExpression": {
                                                    "baseExpression": {
                                                        "id": 8878,
                                                        "name": "customFee",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6608,
                                                        "src": "31228:9:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                            "typeString": "mapping(address => mapping(address => uint256))"
                                                        }
                                                    },
                                                    "id": 8882,
                                                    "indexExpression": {
                                                        "baseExpression": {
                                                            "id": 8879,
                                                            "name": "poolSecurity",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6592,
                                                            "src": "31238:12:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 8881,
                                                        "indexExpression": {
                                                            "id": 8880,
                                                            "name": "poolId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8835,
                                                            "src": "31251:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "31238:20:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "31228:31:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                        "typeString": "mapping(address => uint256)"
                                                    }
                                                },
                                                "id": 8884,
                                                "indexExpression": {
                                                    "id": 8883,
                                                    "name": "currency",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8839,
                                                    "src": "31260:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "31228:41:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "hexValue": "30",
                                                "id": 8885,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "31271:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_0_by_1",
                                                    "typeString": "int_const 0"
                                                },
                                                "value": "0"
                                            },
                                            "src": "31228:44:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseExpression": {
                                            "arguments": [
                                                {
                                                    "id": 8894,
                                                    "name": "subscription",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8862,
                                                    "src": "31398:12:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 8895,
                                                            "name": "customFee",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 6608,
                                                            "src": "31412:9:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                "typeString": "mapping(address => mapping(address => uint256))"
                                                            }
                                                        },
                                                        "id": 8899,
                                                        "indexExpression": {
                                                            "baseExpression": {
                                                                "id": 8896,
                                                                "name": "poolSecurity",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6592,
                                                                "src": "31422:12:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                    "typeString": "mapping(bytes32 => address)"
                                                                }
                                                            },
                                                            "id": 8898,
                                                            "indexExpression": {
                                                                "id": 8897,
                                                                "name": "poolId",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8835,
                                                                "src": "31435:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "31422:20:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "31412:31:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 8901,
                                                    "indexExpression": {
                                                        "id": 8900,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8839,
                                                        "src": "31444:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "31412:41:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 8892,
                                                    "name": "FixedPoint",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 780,
                                                    "src": "31379:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                        "typeString": "type(library FixedPoint)"
                                                    }
                                                },
                                                "id": 8893,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "mulDown",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 537,
                                                "src": "31379:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 8902,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "31379:75:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 8903,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "Conditional",
                                        "src": "31228:226:18",
                                        "trueExpression": {
                                            "arguments": [
                                                {
                                                    "id": 8889,
                                                    "name": "subscription",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8862,
                                                    "src": "31294:12:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "id": 8890,
                                                    "name": "swapFeePercentage",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6395,
                                                    "src": "31308:17:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 8887,
                                                    "name": "FixedPoint",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 780,
                                                    "src": "31275:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                        "typeString": "type(library FixedPoint)"
                                                    }
                                                },
                                                "id": 8888,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "mulDown",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 537,
                                                "src": "31275:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 8891,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "31275:51:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "31207:247:18"
                                },
                                {
                                    "assignments": [
                                        8906
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8906,
                                            "mutability": "mutable",
                                            "name": "prorataLiquidityProvided",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9135,
                                            "src": "31465:32:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8905,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "31465:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8908,
                                    "initialValue": {
                                        "hexValue": "30",
                                        "id": 8907,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "31499:1:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "31465:35:18"
                                },
                                {
                                    "assignments": [
                                        8910
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 8910,
                                            "mutability": "mutable",
                                            "name": "underwritingFee",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9135,
                                            "src": "31511:23:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 8909,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "31511:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 8912,
                                    "initialValue": {
                                        "hexValue": "30",
                                        "id": 8911,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "31537:1:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "31511:27:18"
                                },
                                {
                                    "body": {
                                        "id": 9080,
                                        "nodeType": "Block",
                                        "src": "31626:1357:18",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "id": 8945,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "id": 8928,
                                                        "name": "prorataLiquidityProvided",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8906,
                                                        "src": "31641:24:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "arguments": [
                                                            {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "baseExpression": {
                                                                            "id": 8931,
                                                                            "name": "liquidityProviders",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6553,
                                                                            "src": "31687:18:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                                                "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 8935,
                                                                        "indexExpression": {
                                                                            "baseExpression": {
                                                                                "id": 8932,
                                                                                "name": "poolSecurity",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 6592,
                                                                                "src": "31706:12:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                    "typeString": "mapping(bytes32 => address)"
                                                                                }
                                                                            },
                                                                            "id": 8934,
                                                                            "indexExpression": {
                                                                                "id": 8933,
                                                                                "name": "poolId",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8835,
                                                                                "src": "31719:6:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "31706:20:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "31687:40:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                                            "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 8937,
                                                                    "indexExpression": {
                                                                        "id": 8936,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8914,
                                                                        "src": "31728:1:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "31687:43:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_lp_$11695_storage",
                                                                        "typeString": "struct IMarketMaker.lp storage ref"
                                                                    }
                                                                },
                                                                "id": 8938,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "underwritten",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 11690,
                                                                "src": "31687:56:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "baseExpression": {
                                                                    "id": 8939,
                                                                    "name": "totalUnderwritten",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6557,
                                                                    "src": "31745:17:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                        "typeString": "mapping(address => uint256)"
                                                                    }
                                                                },
                                                                "id": 8943,
                                                                "indexExpression": {
                                                                    "baseExpression": {
                                                                        "id": 8940,
                                                                        "name": "poolSecurity",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6592,
                                                                        "src": "31763:12:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                            "typeString": "mapping(bytes32 => address)"
                                                                        }
                                                                    },
                                                                    "id": 8942,
                                                                    "indexExpression": {
                                                                        "id": 8941,
                                                                        "name": "poolId",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8835,
                                                                        "src": "31776:6:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "31763:20:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "31745:39:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "id": 8929,
                                                                "name": "FixedPoint",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 780,
                                                                "src": "31668:10:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                    "typeString": "type(library FixedPoint)"
                                                                }
                                                            },
                                                            "id": 8930,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "divDown",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 631,
                                                            "src": "31668:18:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 8944,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "31668:117:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "31641:144:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 8946,
                                                "nodeType": "ExpressionStatement",
                                                "src": "31641:144:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 8961,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "id": 8947,
                                                        "name": "underwritingFee",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8910,
                                                        "src": "31800:15:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "arguments": [
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "id": 8952,
                                                                        "name": "issuingFee",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8877,
                                                                        "src": "31856:10:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 8953,
                                                                        "name": "prorataLiquidityProvided",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8906,
                                                                        "src": "31868:24:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "id": 8950,
                                                                        "name": "FixedPoint",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 780,
                                                                        "src": "31837:10:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                            "typeString": "type(library FixedPoint)"
                                                                        }
                                                                    },
                                                                    "id": 8951,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "mulDown",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 537,
                                                                    "src": "31837:18:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 8954,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "31837:56:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "arguments": [
                                                                            {
                                                                                "id": 8957,
                                                                                "name": "currency",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8839,
                                                                                "src": "31924:8:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "id": 8956,
                                                                            "name": "IERC20",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2938,
                                                                            "src": "31917:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                "typeString": "type(contract IERC20)"
                                                                            }
                                                                        },
                                                                        "id": 8958,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "31917:16:18",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    ],
                                                                    "id": 8955,
                                                                    "name": "_computeScalingFactor",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9248,
                                                                    "src": "31895:21:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 8959,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "31895:39:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "id": 8948,
                                                                "name": "FixedPoint",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 780,
                                                                "src": "31818:10:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                    "typeString": "type(library FixedPoint)"
                                                                }
                                                            },
                                                            "id": 8949,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "divDown",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 631,
                                                            "src": "31818:18:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 8960,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "31818:117:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "31800:135:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 8962,
                                                "nodeType": "ExpressionStatement",
                                                "src": "31800:135:18"
                                            },
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "id": 8967,
                                                            "name": "underwritingFee",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8910,
                                                            "src": "31991:15:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 8968,
                                                                        "name": "liquidityProviders",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6553,
                                                                        "src": "32062:18:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 8972,
                                                                    "indexExpression": {
                                                                        "baseExpression": {
                                                                            "id": 8969,
                                                                            "name": "poolSecurity",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6592,
                                                                            "src": "32081:12:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                "typeString": "mapping(bytes32 => address)"
                                                                            }
                                                                        },
                                                                        "id": 8971,
                                                                        "indexExpression": {
                                                                            "id": 8970,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8835,
                                                                            "src": "32094:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "32081:20:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "32062:40:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 8974,
                                                                "indexExpression": {
                                                                    "id": 8973,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8914,
                                                                    "src": "32103:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "32062:43:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_lp_$11695_storage",
                                                                    "typeString": "struct IMarketMaker.lp storage ref"
                                                                }
                                                            },
                                                            "id": 8975,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "tokenOffered",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11688,
                                                            "src": "32062:56:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 8976,
                                                                        "name": "liquidityProviders",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6553,
                                                                        "src": "32173:18:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 8980,
                                                                    "indexExpression": {
                                                                        "baseExpression": {
                                                                            "id": 8977,
                                                                            "name": "poolSecurity",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6592,
                                                                            "src": "32192:12:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                "typeString": "mapping(bytes32 => address)"
                                                                            }
                                                                        },
                                                                        "id": 8979,
                                                                        "indexExpression": {
                                                                            "id": 8978,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8835,
                                                                            "src": "32205:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "32192:20:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "32173:40:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 8982,
                                                                "indexExpression": {
                                                                    "id": 8981,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8914,
                                                                    "src": "32214:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "32173:43:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_lp_$11695_storage",
                                                                    "typeString": "struct IMarketMaker.lp storage ref"
                                                                }
                                                            },
                                                            "id": 8983,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "owner",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11686,
                                                            "src": "32173:49:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 8964,
                                                                    "name": "LiquidityContract",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6412,
                                                                    "src": "31961:17:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 8963,
                                                                "name": "ILiquidity",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 11308,
                                                                "src": "31950:10:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ILiquidity_$11308_$",
                                                                    "typeString": "type(contract ILiquidity)"
                                                                }
                                                            },
                                                            "id": 8965,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "31950:29:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ILiquidity_$11308",
                                                                "typeString": "contract ILiquidity"
                                                            }
                                                        },
                                                        "id": 8966,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "distribute",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 11220,
                                                        "src": "31950:40:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$",
                                                            "typeString": "function (uint256,address,address) external"
                                                        }
                                                    },
                                                    "id": 8984,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "31950:273:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 8985,
                                                "nodeType": "ExpressionStatement",
                                                "src": "31950:273:18"
                                            },
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 8990,
                                                                        "name": "liquidityProviders",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6553,
                                                                        "src": "32264:18:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 8994,
                                                                    "indexExpression": {
                                                                        "baseExpression": {
                                                                            "id": 8991,
                                                                            "name": "poolSecurity",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6592,
                                                                            "src": "32283:12:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                "typeString": "mapping(bytes32 => address)"
                                                                            }
                                                                        },
                                                                        "id": 8993,
                                                                        "indexExpression": {
                                                                            "id": 8992,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8835,
                                                                            "src": "32296:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "32283:20:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "32264:40:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 8996,
                                                                "indexExpression": {
                                                                    "id": 8995,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8914,
                                                                    "src": "32305:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "32264:43:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_lp_$11695_storage",
                                                                    "typeString": "struct IMarketMaker.lp storage ref"
                                                                }
                                                            },
                                                            "id": 8997,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "owner",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11686,
                                                            "src": "32264:49:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "id": 9000,
                                                                    "name": "underwritingFee",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8910,
                                                                    "src": "32334:15:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                {
                                                                    "id": 9001,
                                                                    "name": "revshare",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6610,
                                                                    "src": "32351:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "id": 8998,
                                                                    "name": "FixedPoint",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 780,
                                                                    "src": "32315:10:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                        "typeString": "type(library FixedPoint)"
                                                                    }
                                                                },
                                                                "id": 8999,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "mulDown",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 537,
                                                                "src": "32315:18:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                }
                                                            },
                                                            "id": 9002,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "32315:45:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 8987,
                                                                    "name": "currency",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8839,
                                                                    "src": "32245:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 8986,
                                                                "name": "IERC20",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2938,
                                                                "src": "32238:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                    "typeString": "type(contract IERC20)"
                                                                }
                                                            },
                                                            "id": 8988,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "32238:16:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        },
                                                        "id": 8989,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "transfer",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 2887,
                                                        "src": "32238:25:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                            "typeString": "function (address,uint256) external returns (bool)"
                                                        }
                                                    },
                                                    "id": 9003,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "32238:123:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "id": 9004,
                                                "nodeType": "ExpressionStatement",
                                                "src": "32238:123:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 9025,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "expression": {
                                                            "baseExpression": {
                                                                "baseExpression": {
                                                                    "id": 9005,
                                                                    "name": "liquidityProviders",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6553,
                                                                    "src": "32376:18:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                                        "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                                    }
                                                                },
                                                                "id": 9010,
                                                                "indexExpression": {
                                                                    "baseExpression": {
                                                                        "id": 9006,
                                                                        "name": "poolSecurity",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6592,
                                                                        "src": "32395:12:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                            "typeString": "mapping(bytes32 => address)"
                                                                        }
                                                                    },
                                                                    "id": 9008,
                                                                    "indexExpression": {
                                                                        "id": 9007,
                                                                        "name": "poolId",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8835,
                                                                        "src": "32408:6:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "32395:20:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "32376:40:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                                    "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                }
                                                            },
                                                            "id": 9011,
                                                            "indexExpression": {
                                                                "id": 9009,
                                                                "name": "i",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8914,
                                                                "src": "32417:1:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "32376:43:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_lp_$11695_storage",
                                                                "typeString": "struct IMarketMaker.lp storage ref"
                                                            }
                                                        },
                                                        "id": 9012,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "memberName": "earned",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 11694,
                                                        "src": "32376:50:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "arguments": [
                                                            {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "baseExpression": {
                                                                            "id": 9015,
                                                                            "name": "liquidityProviders",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6553,
                                                                            "src": "32438:18:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                                                "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 9019,
                                                                        "indexExpression": {
                                                                            "baseExpression": {
                                                                                "id": 9016,
                                                                                "name": "poolSecurity",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 6592,
                                                                                "src": "32457:12:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                    "typeString": "mapping(bytes32 => address)"
                                                                                }
                                                                            },
                                                                            "id": 9018,
                                                                            "indexExpression": {
                                                                                "id": 9017,
                                                                                "name": "poolId",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8835,
                                                                                "src": "32470:6:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "32457:20:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "32438:40:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                                            "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 9021,
                                                                    "indexExpression": {
                                                                        "id": 9020,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8914,
                                                                        "src": "32479:1:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "32438:43:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_lp_$11695_storage",
                                                                        "typeString": "struct IMarketMaker.lp storage ref"
                                                                    }
                                                                },
                                                                "id": 9022,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "earned",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 11694,
                                                                "src": "32438:50:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "id": 9023,
                                                                "name": "underwritingFee",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8910,
                                                                "src": "32490:15:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "id": 9013,
                                                                "name": "Math",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2367,
                                                                "src": "32429:4:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                    "typeString": "type(library Math)"
                                                                }
                                                            },
                                                            "id": 9014,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "add",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 2109,
                                                            "src": "32429:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 9024,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "32429:77:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "32376:130:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 9026,
                                                "nodeType": "ExpressionStatement",
                                                "src": "32376:130:18"
                                            },
                                            {
                                                "expression": {
                                                    "id": 9045,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "id": 9027,
                                                        "name": "prorataLiquidityProvided",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8906,
                                                        "src": "32521:24:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "arguments": [
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "id": 9032,
                                                                        "name": "prorataLiquidityProvided",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 8906,
                                                                        "src": "32586:24:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "arguments": [
                                                                            {
                                                                                "id": 9035,
                                                                                "name": "subscription",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8862,
                                                                                "src": "32621:12:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            },
                                                                            {
                                                                                "id": 9036,
                                                                                "name": "issuingFee",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8877,
                                                                                "src": "32635:10:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "expression": {
                                                                                "id": 9033,
                                                                                "name": "Math",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 2367,
                                                                                "src": "32612:4:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                                    "typeString": "type(library Math)"
                                                                                }
                                                                            },
                                                                            "id": 9034,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "memberName": "sub",
                                                                            "nodeType": "MemberAccess",
                                                                            "referencedDeclaration": 2177,
                                                                            "src": "32612:8:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 9037,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "32612:34:18",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "id": 9030,
                                                                        "name": "FixedPoint",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 780,
                                                                        "src": "32567:10:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                            "typeString": "type(library FixedPoint)"
                                                                        }
                                                                    },
                                                                    "id": 9031,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "mulDown",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 537,
                                                                    "src": "32567:18:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 9038,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "32567:80:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "arguments": [
                                                                            {
                                                                                "id": 9041,
                                                                                "name": "currency",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 8839,
                                                                                "src": "32678:8:18",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "id": 9040,
                                                                            "name": "IERC20",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2938,
                                                                            "src": "32671:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                "typeString": "type(contract IERC20)"
                                                                            }
                                                                        },
                                                                        "id": 9042,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "32671:16:18",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    ],
                                                                    "id": 9039,
                                                                    "name": "_computeScalingFactor",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9248,
                                                                    "src": "32649:21:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 9043,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "32649:39:18",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "id": 9028,
                                                                "name": "FixedPoint",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 780,
                                                                "src": "32548:10:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                    "typeString": "type(library FixedPoint)"
                                                                }
                                                            },
                                                            "id": 9029,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "divDown",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 631,
                                                            "src": "32548:18:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 9044,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "32548:141:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "32521:168:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 9046,
                                                "nodeType": "ExpressionStatement",
                                                "src": "32521:168:18"
                                            },
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 9050,
                                                                        "name": "liquidityProviders",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6553,
                                                                        "src": "32717:18:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 9054,
                                                                    "indexExpression": {
                                                                        "baseExpression": {
                                                                            "id": 9051,
                                                                            "name": "poolSecurity",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6592,
                                                                            "src": "32736:12:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                "typeString": "mapping(bytes32 => address)"
                                                                            }
                                                                        },
                                                                        "id": 9053,
                                                                        "indexExpression": {
                                                                            "id": 9052,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8835,
                                                                            "src": "32749:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "32736:20:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "32717:40:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 9056,
                                                                "indexExpression": {
                                                                    "id": 9055,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8914,
                                                                    "src": "32758:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "32717:43:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_lp_$11695_storage",
                                                                    "typeString": "struct IMarketMaker.lp storage ref"
                                                                }
                                                            },
                                                            "id": 9057,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "subscribed",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11692,
                                                            "src": "32717:54:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 9058,
                                                            "name": "prorataLiquidityProvided",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8906,
                                                            "src": "32773:24:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "id": 9047,
                                                            "name": "SafeMath",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 3123,
                                                            "src": "32704:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_SafeMath_$3123_$",
                                                                "typeString": "type(library SafeMath)"
                                                            }
                                                        },
                                                        "id": 9049,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "add",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 3076,
                                                        "src": "32704:12:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 9059,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "32704:94:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 9060,
                                                "nodeType": "ExpressionStatement",
                                                "src": "32704:94:18"
                                            },
                                            {
                                                "eventCall": {
                                                    "arguments": [
                                                        {
                                                            "id": 9062,
                                                            "name": "poolId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8835,
                                                            "src": "32830:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        {
                                                            "baseExpression": {
                                                                "id": 9063,
                                                                "name": "poolSecurity",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6592,
                                                                "src": "32838:12:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                    "typeString": "mapping(bytes32 => address)"
                                                                }
                                                            },
                                                            "id": 9065,
                                                            "indexExpression": {
                                                                "id": 9064,
                                                                "name": "poolId",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8835,
                                                                "src": "32851:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "32838:20:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 9066,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8839,
                                                            "src": "32860:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "baseExpression": {
                                                                        "id": 9067,
                                                                        "name": "liquidityProviders",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 6553,
                                                                        "src": "32870:18:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                                            "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 9071,
                                                                    "indexExpression": {
                                                                        "baseExpression": {
                                                                            "id": 9068,
                                                                            "name": "poolSecurity",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 6592,
                                                                            "src": "32889:12:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                                "typeString": "mapping(bytes32 => address)"
                                                                            }
                                                                        },
                                                                        "id": 9070,
                                                                        "indexExpression": {
                                                                            "id": 9069,
                                                                            "name": "poolId",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 8835,
                                                                            "src": "32902:6:18",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "32889:20:18",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "32870:40:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                                        "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                    }
                                                                },
                                                                "id": 9073,
                                                                "indexExpression": {
                                                                    "id": 9072,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8914,
                                                                    "src": "32911:1:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "32870:43:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_lp_$11695_storage",
                                                                    "typeString": "struct IMarketMaker.lp storage ref"
                                                                }
                                                            },
                                                            "id": 9074,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "owner",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 11686,
                                                            "src": "32870:49:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 9075,
                                                            "name": "underwritingFee",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8910,
                                                            "src": "32921:15:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "id": 9076,
                                                            "name": "issuer",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8849,
                                                            "src": "32938:6:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 9077,
                                                            "name": "prorataLiquidityProvided",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8906,
                                                            "src": "32946:24:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "id": 9061,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6720,
                                                        "src": "32818:11:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (bytes32,address,address,address,uint256,address,uint256)"
                                                        }
                                                    },
                                                    "id": 9078,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "32818:153:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 9079,
                                                "nodeType": "EmitStatement",
                                                "src": "32813:158:18"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 8924,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "id": 8917,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8914,
                                            "src": "31571:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "expression": {
                                                "baseExpression": {
                                                    "id": 8918,
                                                    "name": "liquidityProviders",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6553,
                                                    "src": "31573:18:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_struct$_lp_$11695_storage_$dyn_storage_$",
                                                        "typeString": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)"
                                                    }
                                                },
                                                "id": 8922,
                                                "indexExpression": {
                                                    "baseExpression": {
                                                        "id": 8919,
                                                        "name": "poolSecurity",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6592,
                                                        "src": "31592:12:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                            "typeString": "mapping(bytes32 => address)"
                                                        }
                                                    },
                                                    "id": 8921,
                                                    "indexExpression": {
                                                        "id": 8920,
                                                        "name": "poolId",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8835,
                                                        "src": "31605:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "31592:20:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "31573:40:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_struct$_lp_$11695_storage_$dyn_storage",
                                                    "typeString": "struct IMarketMaker.lp storage ref[] storage ref"
                                                }
                                            },
                                            "id": 8923,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "src": "31573:47:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "31571:49:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9081,
                                    "initializationExpression": {
                                        "assignments": [
                                            8914
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 8914,
                                                "mutability": "mutable",
                                                "name": "i",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 9081,
                                                "src": "31561:6:18",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 8913,
                                                    "name": "uint",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "31561:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 8916,
                                        "initialValue": {
                                            "hexValue": "30",
                                            "id": 8915,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "31568:1:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "31561:8:18"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "id": 8926,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "31622:3:18",
                                            "subExpression": {
                                                "id": 8925,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8914,
                                                "src": "31622:1:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 8927,
                                        "nodeType": "ExpressionStatement",
                                        "src": "31622:3:18"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "31557:1426:18"
                                },
                                {
                                    "expression": {
                                        "id": 9092,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 9082,
                                            "name": "issuingFee",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8877,
                                            "src": "32993:10:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "id": 9085,
                                                    "name": "issuingFee",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 8877,
                                                    "src": "33025:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "arguments": [
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "id": 9088,
                                                                    "name": "currency",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8839,
                                                                    "src": "33066:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 9087,
                                                                "name": "IERC20",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2938,
                                                                "src": "33059:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                    "typeString": "type(contract IERC20)"
                                                                }
                                                            },
                                                            "id": 9089,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "33059:16:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        ],
                                                        "id": 9086,
                                                        "name": "_computeScalingFactor",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9248,
                                                        "src": "33037:21:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                            "typeString": "function (contract IERC20) view returns (uint256)"
                                                        }
                                                    },
                                                    "id": 9090,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "33037:39:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 9083,
                                                    "name": "FixedPoint",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 780,
                                                    "src": "33006:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                        "typeString": "type(library FixedPoint)"
                                                    }
                                                },
                                                "id": 9084,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "divDown",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 631,
                                                "src": "33006:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 9091,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "33006:71:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "32993:84:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 9093,
                                    "nodeType": "ExpressionStatement",
                                    "src": "32993:84:18"
                                },
                                {
                                    "expression": {
                                        "id": 9112,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "id": 9094,
                                                "name": "fees",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6602,
                                                "src": "33088:4:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 9096,
                                            "indexExpression": {
                                                "id": 9095,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8839,
                                                "src": "33093:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "33088:14:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "baseExpression": {
                                                        "id": 9099,
                                                        "name": "fees",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6602,
                                                        "src": "33114:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 9101,
                                                    "indexExpression": {
                                                        "id": 9100,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8839,
                                                        "src": "33119:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "33114:14:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "arguments": [
                                                        {
                                                            "id": 9104,
                                                            "name": "issuingFee",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8877,
                                                            "src": "33145:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "id": 9107,
                                                                    "name": "issuingFee",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 8877,
                                                                    "src": "33176:10:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                {
                                                                    "id": 9108,
                                                                    "name": "revshare",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 6610,
                                                                    "src": "33188:8:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "id": 9105,
                                                                    "name": "FixedPoint",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 780,
                                                                    "src": "33157:10:18",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                        "typeString": "type(library FixedPoint)"
                                                                    }
                                                                },
                                                                "id": 9106,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "mulDown",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 537,
                                                                "src": "33157:18:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                }
                                                            },
                                                            "id": 9109,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "33157:40:18",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "id": 9102,
                                                            "name": "FixedPoint",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 780,
                                                            "src": "33130:10:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                                "typeString": "type(library FixedPoint)"
                                                            }
                                                        },
                                                        "id": 9103,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sub",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 503,
                                                        "src": "33130:14:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                        }
                                                    },
                                                    "id": 9110,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "33130:68:18",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 9097,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2367,
                                                    "src": "33105:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 9098,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "add",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 2109,
                                                "src": "33105:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 9111,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "33105:94:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "33088:111:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 9113,
                                    "nodeType": "ExpressionStatement",
                                    "src": "33088:111:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 9118,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8849,
                                                "src": "33236:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 9121,
                                                                "name": "subscribed",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 6584,
                                                                "src": "33253:10:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                    "typeString": "mapping(bytes32 => mapping(address => uint256))"
                                                                }
                                                            },
                                                            "id": 9123,
                                                            "indexExpression": {
                                                                "id": 9122,
                                                                "name": "poolId",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 8835,
                                                                "src": "33264:6:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "33253:18:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 9125,
                                                        "indexExpression": {
                                                            "id": 9124,
                                                            "name": "currency",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 8839,
                                                            "src": "33272:8:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "33253:28:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "id": 9126,
                                                        "name": "issuingFee",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8877,
                                                        "src": "33283:10:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "id": 9119,
                                                        "name": "Math",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 2367,
                                                        "src": "33244:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                            "typeString": "type(library Math)"
                                                        }
                                                    },
                                                    "id": 9120,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sub",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 2177,
                                                    "src": "33244:8:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 9127,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "33244:50:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9115,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 8839,
                                                        "src": "33217:8:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9114,
                                                    "name": "IERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2938,
                                                    "src": "33210:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                        "typeString": "type(contract IERC20)"
                                                    }
                                                },
                                                "id": 9116,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "33210:16:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                    "typeString": "contract IERC20"
                                                }
                                            },
                                            "id": 9117,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transfer",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2887,
                                            "src": "33210:25:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 9128,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "33210:85:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9129,
                                    "nodeType": "ExpressionStatement",
                                    "src": "33210:85:18"
                                },
                                {
                                    "expression": {
                                        "id": 9133,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "UnaryOperation",
                                        "operator": "delete",
                                        "prefix": true,
                                        "src": "33306:24:18",
                                        "subExpression": {
                                            "baseExpression": {
                                                "id": 9130,
                                                "name": "investors",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6572,
                                                "src": "33313:9:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage_$",
                                                    "typeString": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)"
                                                }
                                            },
                                            "id": 9132,
                                            "indexExpression": {
                                                "id": 9131,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8835,
                                                "src": "33323:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "33313:17:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_struct$_subscriptions_$11714_storage_$dyn_storage",
                                                "typeString": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                            }
                                        },
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 9134,
                                    "nodeType": "ExpressionStatement",
                                    "src": "33306:24:18"
                                }
                            ]
                        },
                        "id": 9136,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "onSettle",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 8836,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 8835,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9136,
                                    "src": "30897:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 8834,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "30897:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "30896:16:18"
                        },
                        "returnParameters": {
                            "id": 8837,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "30921:0:18"
                        },
                        "scope": 9283,
                        "src": "30879:2476:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "private"
                    },
                    {
                        "baseFunctions": [
                            11880
                        ],
                        "body": {
                            "id": 9190,
                            "nodeType": "Block",
                            "src": "33448:366:18",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 9148,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "expression": {
                                                        "id": 9145,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -15,
                                                        "src": "33467:3:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 9146,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "src": "33467:10:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "id": 9147,
                                                    "name": "distribution",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6414,
                                                    "src": "33479:12:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "33467:24:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "556e617574686f72697a65642066656520636f6c6c656374696f6e",
                                                "id": 9149,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "33493:29:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_520c74523a45f0fb030503010667d8fc574cfd834ba56c4e6f6de8f27996ed35",
                                                    "typeString": "literal_string \"Unauthorized fee collection\""
                                                },
                                                "value": "Unauthorized fee collection"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_520c74523a45f0fb030503010667d8fc574cfd834ba56c4e6f6de8f27996ed35",
                                                    "typeString": "literal_string \"Unauthorized fee collection\""
                                                }
                                            ],
                                            "id": 9144,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "33459:7:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 9150,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "33459:64:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 9151,
                                    "nodeType": "ExpressionStatement",
                                    "src": "33459:64:18"
                                },
                                {
                                    "assignments": [
                                        9153
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9153,
                                            "mutability": "mutable",
                                            "name": "feeCollected",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9190,
                                            "src": "33534:20:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 9152,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "33534:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9157,
                                    "initialValue": {
                                        "baseExpression": {
                                            "id": 9154,
                                            "name": "fees",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6602,
                                            "src": "33557:4:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 9156,
                                        "indexExpression": {
                                            "id": 9155,
                                            "name": "_token",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9138,
                                            "src": "33562:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "33557:12:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "33534:35:18"
                                },
                                {
                                    "expression": {
                                        "id": 9168,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "id": 9158,
                                                "name": "fees",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6602,
                                                "src": "33588:4:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 9160,
                                            "indexExpression": {
                                                "id": 9159,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9138,
                                                "src": "33593:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "33588:12:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "baseExpression": {
                                                        "id": 9163,
                                                        "name": "fees",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 6602,
                                                        "src": "33612:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 9165,
                                                    "indexExpression": {
                                                        "id": 9164,
                                                        "name": "_token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9138,
                                                        "src": "33617:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "33612:12:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "id": 9166,
                                                    "name": "feeCollected",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9153,
                                                    "src": "33626:12:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 9161,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2367,
                                                    "src": "33603:4:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 9162,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sub",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 2177,
                                                "src": "33603:8:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 9167,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "33603:36:18",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "33588:51:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 9169,
                                    "nodeType": "ExpressionStatement",
                                    "src": "33588:51:18"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 9174,
                                                "name": "distribution",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6414,
                                                "src": "33674:12:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9175,
                                                "name": "feeCollected",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9153,
                                                "src": "33688:12:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9171,
                                                        "name": "_token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9138,
                                                        "src": "33657:6:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9170,
                                                    "name": "IERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2938,
                                                    "src": "33650:6:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                        "typeString": "type(contract IERC20)"
                                                    }
                                                },
                                                "id": 9172,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "33650:14:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                    "typeString": "contract IERC20"
                                                }
                                            },
                                            "id": 9173,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transfer",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2887,
                                            "src": "33650:23:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 9176,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "33650:51:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9177,
                                    "nodeType": "ExpressionStatement",
                                    "src": "33650:51:18"
                                },
                                {
                                    "eventCall": {
                                        "arguments": [
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 9181,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "33739:4:18",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                            "typeString": "contract PrimaryIssueManager"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                            "typeString": "contract PrimaryIssueManager"
                                                        }
                                                    ],
                                                    "id": 9180,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "33731:7:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 9179,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "33731:7:18",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 9182,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "33731:13:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9183,
                                                "name": "feeCollected",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9153,
                                                "src": "33746:12:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 9184,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "33760:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 9185,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "src": "33760:15:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 9178,
                                            "name": "feecollection",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6728,
                                            "src": "33717:13:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256,uint256)"
                                            }
                                        },
                                        "id": 9186,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "33717:59:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 9187,
                                    "nodeType": "EmitStatement",
                                    "src": "33712:64:18"
                                },
                                {
                                    "expression": {
                                        "id": 9188,
                                        "name": "feeCollected",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 9153,
                                        "src": "33794:12:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 9143,
                                    "id": 9189,
                                    "nodeType": "Return",
                                    "src": "33787:19:18"
                                }
                            ]
                        },
                        "functionSelector": "5bccd177",
                        "id": 9191,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getIssuingFeeCollected",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 9140,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "33414:8:18"
                        },
                        "parameters": {
                            "id": 9139,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9138,
                                    "mutability": "mutable",
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9191,
                                    "src": "33398:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9137,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "33398:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "33397:16:18"
                        },
                        "returnParameters": {
                            "id": 9143,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9142,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9191,
                                    "src": "33440:7:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9141,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "33440:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "33439:9:18"
                        },
                        "scope": 9283,
                        "src": "33366:448:18",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            11873
                        ],
                        "body": {
                            "id": 9200,
                            "nodeType": "Block",
                            "src": "33881:33:18",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "id": 9197,
                                            "name": "owner",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 2978,
                                            "src": "33899:5:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                                                "typeString": "function () view returns (address)"
                                            }
                                        },
                                        "id": 9198,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "33899:7:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "functionReturnParameters": 9196,
                                    "id": 9199,
                                    "nodeType": "Return",
                                    "src": "33892:14:18"
                                }
                            ]
                        },
                        "functionSelector": "893d20e8",
                        "id": 9201,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getOwner",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 9193,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "33842:8:18"
                        },
                        "parameters": {
                            "id": 9192,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "33839:2:18"
                        },
                        "returnParameters": {
                            "id": 9196,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9195,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9201,
                                    "src": "33873:7:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9194,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "33873:7:18",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "33872:9:18"
                        },
                        "scope": 9283,
                        "src": "33822:92:18",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 9212,
                            "nodeType": "Block",
                            "src": "34148:126:18",
                            "statements": [
                                {
                                    "AST": {
                                        "nodeType": "YulBlock",
                                        "src": "34225:42:18",
                                        "statements": [
                                            {
                                                "nodeType": "YulAssignment",
                                                "src": "34240:16:18",
                                                "value": {
                                                    "name": "tokens",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "34250:6:18"
                                                },
                                                "variableNames": [
                                                    {
                                                        "name": "assets",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "34240:6:18"
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    "evmVersion": "istanbul",
                                    "externalReferences": [
                                        {
                                            "declaration": 9209,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "34240:6:18",
                                            "valueSize": 1
                                        },
                                        {
                                            "declaration": 9205,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "34250:6:18",
                                            "valueSize": 1
                                        }
                                    ],
                                    "id": 9211,
                                    "nodeType": "InlineAssembly",
                                    "src": "34216:51:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 9202,
                            "nodeType": "StructuredDocumentation",
                            "src": "33922:117:18",
                            "text": " @dev This helper function is a fast and cheap way to convert between IERC20[] and IAsset[] types"
                        },
                        "id": 9213,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_convertERC20sToAssets",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 9206,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9205,
                                    "mutability": "mutable",
                                    "name": "tokens",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9213,
                                    "src": "34077:22:18",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                        "typeString": "contract IERC20[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 9203,
                                            "name": "IERC20",
                                            "nodeType": "UserDefinedTypeName",
                                            "referencedDeclaration": 2938,
                                            "src": "34077:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                "typeString": "contract IERC20"
                                            }
                                        },
                                        "id": 9204,
                                        "nodeType": "ArrayTypeName",
                                        "src": "34077:8:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_storage_ptr",
                                            "typeString": "contract IERC20[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "34076:24:18"
                        },
                        "returnParameters": {
                            "id": 9210,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9209,
                                    "mutability": "mutable",
                                    "name": "assets",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9213,
                                    "src": "34124:22:18",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                        "typeString": "contract IAsset[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 9207,
                                            "name": "IAsset",
                                            "nodeType": "UserDefinedTypeName",
                                            "referencedDeclaration": 3127,
                                            "src": "34124:6:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IAsset_$3127",
                                                "typeString": "contract IAsset"
                                            }
                                        },
                                        "id": 9208,
                                        "nodeType": "ArrayTypeName",
                                        "src": "34124:8:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_storage_ptr",
                                            "typeString": "contract IAsset[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "34123:24:18"
                        },
                        "scope": 9283,
                        "src": "34045:229:18",
                        "stateMutability": "pure",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 9247,
                            "nodeType": "Block",
                            "src": "34525:347:18",
                            "statements": [
                                {
                                    "assignments": [
                                        9222
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9222,
                                            "mutability": "mutable",
                                            "name": "tokenDecimals",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9247,
                                            "src": "34617:21:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 9221,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "34617:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9231,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "arguments": [
                                                            {
                                                                "id": 9226,
                                                                "name": "token",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9216,
                                                                "src": "34655:5:18",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            ],
                                                            "id": 9225,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "34647:7:18",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": {
                                                                "id": 9224,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "34647:7:18",
                                                                "typeDescriptions": {}
                                                            }
                                                        },
                                                        "id": 9227,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "34647:14:18",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9223,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2860,
                                                    "src": "34641:5:18",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 9228,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "34641:21:18",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 9229,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "decimals",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2459,
                                            "src": "34641:30:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                                                "typeString": "function () view external returns (uint8)"
                                            }
                                        },
                                        "id": 9230,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "34641:32:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "34617:56:18"
                                },
                                {
                                    "assignments": [
                                        9233
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9233,
                                            "mutability": "mutable",
                                            "name": "decimalsDifference",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9247,
                                            "src": "34751:26:18",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 9232,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "34751:7:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9239,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "hexValue": "3138",
                                                "id": 9236,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "34789:2:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_18_by_1",
                                                    "typeString": "int_const 18"
                                                },
                                                "value": "18"
                                            },
                                            {
                                                "id": 9237,
                                                "name": "tokenDecimals",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9222,
                                                "src": "34793:13:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_rational_18_by_1",
                                                    "typeString": "int_const 18"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9234,
                                                "name": "Math",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2367,
                                                "src": "34780:4:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                    "typeString": "type(library Math)"
                                                }
                                            },
                                            "id": 9235,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "sub",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2177,
                                            "src": "34780:8:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 9238,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "34780:27:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "34751:56:18"
                                },
                                {
                                    "expression": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 9245,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "expression": {
                                                "id": 9240,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 780,
                                                "src": "34825:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 9241,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "ONE",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 445,
                                            "src": "34825:14:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "*",
                                        "rightExpression": {
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 9244,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "hexValue": "3130",
                                                "id": 9242,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "34842:2:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_10_by_1",
                                                    "typeString": "int_const 10"
                                                },
                                                "value": "10"
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "**",
                                            "rightExpression": {
                                                "id": 9243,
                                                "name": "decimalsDifference",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9233,
                                                "src": "34846:18:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "34842:22:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "34825:39:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 9220,
                                    "id": 9246,
                                    "nodeType": "Return",
                                    "src": "34818:46:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 9214,
                            "nodeType": "StructuredDocumentation",
                            "src": "34282:160:18",
                            "text": " @dev Returns a scaling factor that, when multiplied to a token amount for `token`, normalizes its balance as if\n it had 18 decimals."
                        },
                        "id": 9248,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_computeScalingFactor",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 9217,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9216,
                                    "mutability": "mutable",
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9248,
                                    "src": "34479:12:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                        "typeString": "contract IERC20"
                                    },
                                    "typeName": {
                                        "id": 9215,
                                        "name": "IERC20",
                                        "nodeType": "UserDefinedTypeName",
                                        "referencedDeclaration": 2938,
                                        "src": "34479:6:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                            "typeString": "contract IERC20"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "34478:14:18"
                        },
                        "returnParameters": {
                            "id": 9220,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9219,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9248,
                                    "src": "34516:7:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9218,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "34516:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "34515:9:18"
                        },
                        "scope": 9283,
                        "src": "34448:424:18",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 9264,
                            "nodeType": "Block",
                            "src": "35177:67:18",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 9260,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9251,
                                                "src": "35214:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 9261,
                                                "name": "scalingFactor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9253,
                                                "src": "35222:13:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9258,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 780,
                                                "src": "35195:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 9259,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "divDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 631,
                                            "src": "35195:18:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 9262,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "35195:41:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 9257,
                                    "id": 9263,
                                    "nodeType": "Return",
                                    "src": "35188:48:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 9249,
                            "nodeType": "StructuredDocumentation",
                            "src": "34880:196:18",
                            "text": " @dev Reverses the `scalingFactor` applied to `amount`, resulting in a smaller or equal value depending on\n whether it needed scaling or not. The result is rounded down."
                        },
                        "id": 9265,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_downscaleDown",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 9254,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9251,
                                    "mutability": "mutable",
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9265,
                                    "src": "35106:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9250,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "35106:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9253,
                                    "mutability": "mutable",
                                    "name": "scalingFactor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9265,
                                    "src": "35122:21:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9252,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "35122:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "35105:39:18"
                        },
                        "returnParameters": {
                            "id": 9257,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9256,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9265,
                                    "src": "35168:7:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9255,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "35168:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "35167:9:18"
                        },
                        "scope": 9283,
                        "src": "35082:162:18",
                        "stateMutability": "pure",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 9281,
                            "nodeType": "Block",
                            "src": "35501:496:18",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 9277,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9268,
                                                "src": "35967:6:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 9278,
                                                "name": "scalingFactor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9270,
                                                "src": "35975:13:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9275,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 780,
                                                "src": "35948:10:18",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 9276,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "mulDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 537,
                                            "src": "35948:18:18",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 9279,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "35948:41:18",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 9274,
                                    "id": 9280,
                                    "nodeType": "Return",
                                    "src": "35941:48:18"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 9266,
                            "nodeType": "StructuredDocumentation",
                            "src": "35252:154:18",
                            "text": " @dev Applies `scalingFactor` to `amount`, resulting in a larger or equal value depending on whether it needed\n scaling or not."
                        },
                        "id": 9282,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_upscale",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 9271,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9268,
                                    "mutability": "mutable",
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9282,
                                    "src": "35430:14:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9267,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "35430:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9270,
                                    "mutability": "mutable",
                                    "name": "scalingFactor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9282,
                                    "src": "35446:21:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9269,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "35446:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "35429:39:18"
                        },
                        "returnParameters": {
                            "id": 9274,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9273,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9282,
                                    "src": "35492:7:18",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9272,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "35492:7:18",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "35491:9:18"
                        },
                        "scope": 9283,
                        "src": "35412:585:18",
                        "stateMutability": "pure",
                        "virtual": false,
                        "visibility": "internal"
                    }
                ],
                "scope": 9284,
                "src": "1036:34966:18"
            }
        ],
        "src": "117:35885:18"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/PrimaryIssueManager.sol",
            "exportedSymbols": {
                "PrimaryIssueManager": [
                    9283
                ]
            },
            "license": "UNLICENSED"
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "^",
                        "0.7",
                        ".1"
                    ]
                },
                "id": 6362,
                "name": "PragmaDirective",
                "src": "117:23:18"
            },
            {
                "attributes": {
                    "literals": [
                        "experimental",
                        "ABIEncoderV2"
                    ]
                },
                "id": 6363,
                "name": "PragmaDirective",
                "src": "142:33:18"
            },
            {
                "attributes": {
                    "SourceUnit": 2939,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6364,
                "name": "ImportDirective",
                "src": "179:76:18"
            },
            {
                "attributes": {
                    "SourceUnit": 2861,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6365,
                "name": "ImportDirective",
                "src": "257:75:18"
            },
            {
                "attributes": {
                    "SourceUnit": 3046,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6366,
                "name": "ImportDirective",
                "src": "334:77:18"
            },
            {
                "attributes": {
                    "SourceUnit": 2368,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/math/Math.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/math/Math.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6367,
                "name": "ImportDirective",
                "src": "413:66:18"
            },
            {
                "attributes": {
                    "SourceUnit": 781,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6368,
                "name": "ImportDirective",
                "src": "481:72:18"
            },
            {
                "attributes": {
                    "SourceUnit": 3689,
                    "absolutePath": "@balancer-labs/v2-vault/contracts/interfaces/IVault.sol",
                    "file": "@balancer-labs/v2-vault/contracts/interfaces/IVault.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6369,
                "name": "ImportDirective",
                "src": "557:65:18"
            },
            {
                "attributes": {
                    "SourceUnit": 3128,
                    "absolutePath": "@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol",
                    "file": "@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6370,
                "name": "ImportDirective",
                "src": "624:65:18"
            },
            {
                "attributes": {
                    "SourceUnit": 12049,
                    "absolutePath": "project:/contracts/interfaces/IPrimaryIssuePoolFactory.sol",
                    "file": "./interfaces/IPrimaryIssuePoolFactory.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6371,
                "name": "ImportDirective",
                "src": "693:51:18"
            },
            {
                "attributes": {
                    "SourceUnit": 12017,
                    "absolutePath": "project:/contracts/interfaces/IPrimaryIssuePool.sol",
                    "file": "./interfaces/IPrimaryIssuePool.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6372,
                "name": "ImportDirective",
                "src": "746:44:18"
            },
            {
                "attributes": {
                    "SourceUnit": 12415,
                    "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                    "file": "./interfaces/VerifiedClient.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6373,
                "name": "ImportDirective",
                "src": "794:41:18"
            },
            {
                "attributes": {
                    "SourceUnit": 11882,
                    "absolutePath": "project:/contracts/interfaces/IMarketMaker.sol",
                    "file": "./interfaces/IMarketMaker.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6374,
                "name": "ImportDirective",
                "src": "837:39:18"
            },
            {
                "attributes": {
                    "SourceUnit": 11309,
                    "absolutePath": "project:/contracts/interfaces/ILiquidity.sol",
                    "file": "./interfaces/ILiquidity.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6375,
                "name": "ImportDirective",
                "src": "878:37:18"
            },
            {
                "attributes": {
                    "SourceUnit": 11118,
                    "absolutePath": "project:/contracts/interfaces/IFactory.sol",
                    "file": "./interfaces/IFactory.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6376,
                "name": "ImportDirective",
                "src": "917:35:18"
            },
            {
                "attributes": {
                    "SourceUnit": 12123,
                    "absolutePath": "project:/contracts/interfaces/ISecurity.sol",
                    "file": "./interfaces/ISecurity.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6377,
                "name": "ImportDirective",
                "src": "954:36:18"
            },
            {
                "attributes": {
                    "SourceUnit": 11002,
                    "absolutePath": "project:/contracts/interfaces/IDistribution.sol",
                    "file": "./interfaces/IDistribution.sol",
                    "scope": 9284,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 6378,
                "name": "ImportDirective",
                "src": "992:40:18"
            },
            {
                "attributes": {
                    "abstract": false,
                    "contractDependencies": [
                        3045,
                        11881
                    ],
                    "contractKind": "contract",
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        9283,
                        3045,
                        11881
                    ],
                    "name": "PrimaryIssueManager",
                    "scope": 9284
                },
                "children": [
                    {
                        "attributes": {},
                        "children": [
                            {
                                "attributes": {
                                    "name": "IMarketMaker",
                                    "referencedDeclaration": 11881,
                                    "type": "contract IMarketMaker"
                                },
                                "id": 6379,
                                "name": "UserDefinedTypeName",
                                "src": "1068:12:18"
                            }
                        ],
                        "id": 6380,
                        "name": "InheritanceSpecifier",
                        "src": "1068:12:18"
                    },
                    {
                        "attributes": {},
                        "children": [
                            {
                                "attributes": {
                                    "name": "Ownable",
                                    "referencedDeclaration": 3045,
                                    "type": "contract Ownable"
                                },
                                "id": 6381,
                                "name": "UserDefinedTypeName",
                                "src": "1082:7:18"
                            }
                        ],
                        "id": 6382,
                        "name": "InheritanceSpecifier",
                        "src": "1082:7:18"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "name": "Math",
                                    "referencedDeclaration": 2367,
                                    "type": "library Math"
                                },
                                "id": 6383,
                                "name": "UserDefinedTypeName",
                                "src": "1105:4:18"
                            },
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 6384,
                                "name": "ElementaryTypeName",
                                "src": "1114:7:18"
                            }
                        ],
                        "id": 6385,
                        "name": "UsingForDirective",
                        "src": "1099:23:18"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "name": "FixedPoint",
                                    "referencedDeclaration": 780,
                                    "type": "library FixedPoint"
                                },
                                "id": 6386,
                                "name": "UserDefinedTypeName",
                                "src": "1134:10:18"
                            },
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 6387,
                                "name": "ElementaryTypeName",
                                "src": "1149:7:18"
                            }
                        ],
                        "id": 6388,
                        "name": "UsingForDirective",
                        "src": "1128:29:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "factory",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 6389,
                                "name": "ElementaryTypeName",
                                "src": "1192:7:18"
                            }
                        ],
                        "id": 6390,
                        "name": "VariableDeclaration",
                        "src": "1192:23:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "vault",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 6391,
                                "name": "ElementaryTypeName",
                                "src": "1222:7:18"
                            }
                        ],
                        "id": 6392,
                        "name": "VariableDeclaration",
                        "src": "1222:21:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "swapFeePercentage",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "uint256",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 6393,
                                "name": "ElementaryTypeName",
                                "src": "1250:7:18"
                            },
                            {
                                "attributes": {
                                    "hexvalue": "30",
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "token": "number",
                                    "type": "int_const 0",
                                    "value": "0"
                                },
                                "id": 6394,
                                "name": "Literal",
                                "src": "1284:1:18"
                            }
                        ],
                        "id": 6395,
                        "name": "VariableDeclaration",
                        "src": "1250:35:18"
                    },
                    {
                        "attributes": {
                            "constant": true,
                            "mutability": "constant",
                            "name": "_INITIAL_BPT_SUPPLY",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "uint256",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 6396,
                                "name": "ElementaryTypeName",
                                "src": "1294:7:18"
                            },
                            {
                                "attributes": {
                                    "commonType": {
                                        "typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
                                        "typeString": "int_const 5192...(26 digits omitted)...0095"
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "operator": "-",
                                    "type": "int_const 5192...(26 digits omitted)...0095"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "commonType": {
                                                "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
                                                "typeString": "int_const 5192...(26 digits omitted)...0096"
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "operator": "**",
                                            "type": "int_const 5192...(26 digits omitted)...0096"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "hexvalue": "32",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "token": "number",
                                                    "type": "int_const 2",
                                                    "value": "2"
                                                },
                                                "id": 6397,
                                                "name": "Literal",
                                                "src": "1341:1:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "type": "int_const 112"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "313132",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 112",
                                                            "value": "112"
                                                        },
                                                        "id": 6398,
                                                        "name": "Literal",
                                                        "src": "1345:3:18"
                                                    }
                                                ],
                                                "id": 6399,
                                                "name": "TupleExpression",
                                                "src": "1344:5:18"
                                            }
                                        ],
                                        "id": 6400,
                                        "name": "BinaryOperation",
                                        "src": "1341:8:18"
                                    },
                                    {
                                        "attributes": {
                                            "hexvalue": "31",
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "token": "number",
                                            "type": "int_const 1",
                                            "value": "1"
                                        },
                                        "id": 6401,
                                        "name": "Literal",
                                        "src": "1352:1:18"
                                    }
                                ],
                                "id": 6402,
                                "name": "BinaryOperation",
                                "src": "1341:12:18"
                            }
                        ],
                        "id": 6403,
                        "name": "VariableDeclaration",
                        "src": "1294:59:18"
                    },
                    {
                        "attributes": {
                            "constant": true,
                            "mutability": "constant",
                            "name": "_DEFAULT_MINIMUM_BPT",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "uint256",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 6404,
                                "name": "ElementaryTypeName",
                                "src": "1360:7:18"
                            },
                            {
                                "attributes": {
                                    "hexvalue": "316536",
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "token": "number",
                                    "type": "int_const 1000000",
                                    "value": "1e6"
                                },
                                "id": 6405,
                                "name": "Literal",
                                "src": "1408:3:18"
                            }
                        ],
                        "id": 6406,
                        "name": "VariableDeclaration",
                        "src": "1360:51:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "products",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract IFactory",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "IFactory",
                                    "referencedDeclaration": 11117,
                                    "type": "contract IFactory"
                                },
                                "id": 6407,
                                "name": "UserDefinedTypeName",
                                "src": "1529:8:18"
                            }
                        ],
                        "id": 6408,
                        "name": "VariableDeclaration",
                        "src": "1529:25:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "client",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract VerifiedClient",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "VerifiedClient",
                                    "referencedDeclaration": 12414,
                                    "type": "contract VerifiedClient"
                                },
                                "id": 6409,
                                "name": "UserDefinedTypeName",
                                "src": "1613:14:18"
                            }
                        ],
                        "id": 6410,
                        "name": "VariableDeclaration",
                        "src": "1613:29:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "LiquidityContract",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 6411,
                                "name": "ElementaryTypeName",
                                "src": "1811:7:18"
                            }
                        ],
                        "id": 6412,
                        "name": "VariableDeclaration",
                        "src": "1811:33:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "distribution",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 6413,
                                "name": "ElementaryTypeName",
                                "src": "1883:7:18"
                            }
                        ],
                        "id": 6414,
                        "name": "VariableDeclaration",
                        "src": "1883:28:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "lock",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "bool",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "bool",
                                    "type": "bool"
                                },
                                "id": 6415,
                                "name": "ElementaryTypeName",
                                "src": "1933:4:18"
                            }
                        ],
                        "id": 6416,
                        "name": "VariableDeclaration",
                        "src": "1933:17:18"
                    },
                    {
                        "attributes": {
                            "name": "onlyPool",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 6433,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6417,
                                                "name": "ElementaryTypeName",
                                                "src": "1995:7:18"
                                            }
                                        ],
                                        "id": 6418,
                                        "name": "VariableDeclaration",
                                        "src": "1995:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "caller",
                                            "scope": 6433,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6419,
                                                "name": "ElementaryTypeName",
                                                "src": "2011:7:18"
                                            }
                                        ],
                                        "id": 6420,
                                        "name": "VariableDeclaration",
                                        "src": "2011:14:18"
                                    }
                                ],
                                "id": 6421,
                                "name": "ParameterList",
                                "src": "1994:32:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_f360b33bfe895928de02515948a0ed001f38b1feb515d5228209e7ea318f2dae",
                                                                    "typeString": "literal_string \"Invalid pool\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6422,
                                                        "name": "Identifier",
                                                        "src": "2038:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6420,
                                                                    "type": "address",
                                                                    "value": "caller"
                                                                },
                                                                "id": 6423,
                                                                "name": "Identifier",
                                                                "src": "2046:6:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6588,
                                                                            "type": "mapping(bytes32 => address)",
                                                                            "value": "pools"
                                                                        },
                                                                        "id": 6424,
                                                                        "name": "Identifier",
                                                                        "src": "2056:5:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6418,
                                                                            "type": "bytes32",
                                                                            "value": "poolId"
                                                                        },
                                                                        "id": 6425,
                                                                        "name": "Identifier",
                                                                        "src": "2062:6:18"
                                                                    }
                                                                ],
                                                                "id": 6426,
                                                                "name": "IndexAccess",
                                                                "src": "2056:13:18"
                                                            }
                                                        ],
                                                        "id": 6427,
                                                        "name": "BinaryOperation",
                                                        "src": "2046:23:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "496e76616c696420706f6f6c",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Invalid pool\"",
                                                            "value": "Invalid pool"
                                                        },
                                                        "id": 6428,
                                                        "name": "Literal",
                                                        "src": "2071:14:18"
                                                    }
                                                ],
                                                "id": 6429,
                                                "name": "FunctionCall",
                                                "src": "2038:48:18"
                                            }
                                        ],
                                        "id": 6430,
                                        "name": "ExpressionStatement",
                                        "src": "2038:48:18"
                                    },
                                    {
                                        "id": 6431,
                                        "name": "PlaceholderStatement",
                                        "src": "2097:1:18"
                                    }
                                ],
                                "id": 6432,
                                "name": "Block",
                                "src": "2027:79:18"
                            }
                        ],
                        "id": 6433,
                        "name": "ModifierDefinition",
                        "src": "1977:129:18"
                    },
                    {
                        "attributes": {
                            "name": "onlyLP",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "sender",
                                            "scope": 6446,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6434,
                                                "name": "ElementaryTypeName",
                                                "src": "2130:7:18"
                                            }
                                        ],
                                        "id": 6435,
                                        "name": "VariableDeclaration",
                                        "src": "2130:14:18"
                                    }
                                ],
                                "id": 6436,
                                "name": "ParameterList",
                                "src": "2129:16:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_4c500b50d5f4347423ffbfce82a12d475c21211138f84b6aeb278383c64623cb",
                                                                    "typeString": "literal_string \"Only Liquidity contract\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6437,
                                                        "name": "Identifier",
                                                        "src": "2157:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6435,
                                                                    "type": "address",
                                                                    "value": "sender"
                                                                },
                                                                "id": 6438,
                                                                "name": "Identifier",
                                                                "src": "2165:6:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6412,
                                                                    "type": "address",
                                                                    "value": "LiquidityContract"
                                                                },
                                                                "id": 6439,
                                                                "name": "Identifier",
                                                                "src": "2173:17:18"
                                                            }
                                                        ],
                                                        "id": 6440,
                                                        "name": "BinaryOperation",
                                                        "src": "2165:25:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "4f6e6c79204c697175696469747920636f6e7472616374",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Only Liquidity contract\"",
                                                            "value": "Only Liquidity contract"
                                                        },
                                                        "id": 6441,
                                                        "name": "Literal",
                                                        "src": "2192:25:18"
                                                    }
                                                ],
                                                "id": 6442,
                                                "name": "FunctionCall",
                                                "src": "2157:61:18"
                                            }
                                        ],
                                        "id": 6443,
                                        "name": "ExpressionStatement",
                                        "src": "2157:61:18"
                                    },
                                    {
                                        "id": 6444,
                                        "name": "PlaceholderStatement",
                                        "src": "2229:1:18"
                                    }
                                ],
                                "id": 6445,
                                "name": "Block",
                                "src": "2146:92:18"
                            }
                        ],
                        "id": 6446,
                        "name": "ModifierDefinition",
                        "src": "2114:124:18"
                    },
                    {
                        "attributes": {
                            "name": "onlyAssetManager",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "sender",
                                            "scope": 6470,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6447,
                                                "name": "ElementaryTypeName",
                                                "src": "2272:7:18"
                                            }
                                        ],
                                        "id": 6448,
                                        "name": "VariableDeclaration",
                                        "src": "2272:14:18"
                                    }
                                ],
                                "id": 6449,
                                "name": "ParameterList",
                                "src": "2271:16:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6451,
                                                null,
                                                null
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "role",
                                                    "scope": 6469,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 6450,
                                                        "name": "ElementaryTypeName",
                                                        "src": "2299:7:18"
                                                    }
                                                ],
                                                "id": 6451,
                                                "name": "VariableDeclaration",
                                                "src": "2299:12:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple(bytes32,bytes32,bytes32)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getRole",
                                                            "referencedDeclaration": 12315,
                                                            "type": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6410,
                                                                    "type": "contract VerifiedClient",
                                                                    "value": "client"
                                                                },
                                                                "id": 6452,
                                                                "name": "Identifier",
                                                                "src": "2319:6:18"
                                                            }
                                                        ],
                                                        "id": 6453,
                                                        "name": "MemberAccess",
                                                        "src": "2319:14:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6448,
                                                            "type": "address",
                                                            "value": "sender"
                                                        },
                                                        "id": 6454,
                                                        "name": "Identifier",
                                                        "src": "2334:6:18"
                                                    }
                                                ],
                                                "id": 6455,
                                                "name": "FunctionCall",
                                                "src": "2319:22:18"
                                            }
                                        ],
                                        "id": 6456,
                                        "name": "VariableDeclarationStatement",
                                        "src": "2298:43:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_3bb60760787b59b1f922f1e8c89cdb2ed902285d1cdaaa993a1737432f810c4d",
                                                                    "typeString": "literal_string \"Only Asset manager\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6457,
                                                        "name": "Identifier",
                                                        "src": "2352:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6451,
                                                                            "type": "bytes32",
                                                                            "value": "role"
                                                                        },
                                                                        "id": 6458,
                                                                        "name": "Identifier",
                                                                        "src": "2360:4:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "414d",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"AM\"",
                                                                            "value": "AM"
                                                                        },
                                                                        "id": 6459,
                                                                        "name": "Literal",
                                                                        "src": "2366:4:18"
                                                                    }
                                                                ],
                                                                "id": 6460,
                                                                "name": "BinaryOperation",
                                                                "src": "2360:10:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6451,
                                                                            "type": "bytes32",
                                                                            "value": "role"
                                                                        },
                                                                        "id": 6461,
                                                                        "name": "Identifier",
                                                                        "src": "2374:4:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "4450",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"DP\"",
                                                                            "value": "DP"
                                                                        },
                                                                        "id": 6462,
                                                                        "name": "Literal",
                                                                        "src": "2380:4:18"
                                                                    }
                                                                ],
                                                                "id": 6463,
                                                                "name": "BinaryOperation",
                                                                "src": "2374:10:18"
                                                            }
                                                        ],
                                                        "id": 6464,
                                                        "name": "BinaryOperation",
                                                        "src": "2360:24:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "4f6e6c79204173736574206d616e61676572",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Only Asset manager\"",
                                                            "value": "Only Asset manager"
                                                        },
                                                        "id": 6465,
                                                        "name": "Literal",
                                                        "src": "2386:20:18"
                                                    }
                                                ],
                                                "id": 6466,
                                                "name": "FunctionCall",
                                                "src": "2352:55:18"
                                            }
                                        ],
                                        "id": 6467,
                                        "name": "ExpressionStatement",
                                        "src": "2352:55:18"
                                    },
                                    {
                                        "id": 6468,
                                        "name": "PlaceholderStatement",
                                        "src": "2418:1:18"
                                    }
                                ],
                                "id": 6469,
                                "name": "Block",
                                "src": "2287:140:18"
                            }
                        ],
                        "id": 6470,
                        "name": "ModifierDefinition",
                        "src": "2246:181:18"
                    },
                    {
                        "attributes": {
                            "name": "onlyDP",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "sender",
                                            "scope": 6490,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6471,
                                                "name": "ElementaryTypeName",
                                                "src": "2454:7:18"
                                            }
                                        ],
                                        "id": 6472,
                                        "name": "VariableDeclaration",
                                        "src": "2454:14:18"
                                    }
                                ],
                                "id": 6473,
                                "name": "ParameterList",
                                "src": "2453:16:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6475,
                                                null,
                                                null
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "role",
                                                    "scope": 6489,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 6474,
                                                        "name": "ElementaryTypeName",
                                                        "src": "2481:7:18"
                                                    }
                                                ],
                                                "id": 6475,
                                                "name": "VariableDeclaration",
                                                "src": "2481:12:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple(bytes32,bytes32,bytes32)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getRole",
                                                            "referencedDeclaration": 12315,
                                                            "type": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6410,
                                                                    "type": "contract VerifiedClient",
                                                                    "value": "client"
                                                                },
                                                                "id": 6476,
                                                                "name": "Identifier",
                                                                "src": "2501:6:18"
                                                            }
                                                        ],
                                                        "id": 6477,
                                                        "name": "MemberAccess",
                                                        "src": "2501:14:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6472,
                                                            "type": "address",
                                                            "value": "sender"
                                                        },
                                                        "id": 6478,
                                                        "name": "Identifier",
                                                        "src": "2516:6:18"
                                                    }
                                                ],
                                                "id": 6479,
                                                "name": "FunctionCall",
                                                "src": "2501:22:18"
                                            }
                                        ],
                                        "id": 6480,
                                        "name": "VariableDeclarationStatement",
                                        "src": "2480:43:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_894a32609b0720c7aeffef479ce5ac9284470305252de585494f8b33c6ad3c3f",
                                                                    "typeString": "literal_string \"Only Depositary participant\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6481,
                                                        "name": "Identifier",
                                                        "src": "2534:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6475,
                                                                    "type": "bytes32",
                                                                    "value": "role"
                                                                },
                                                                "id": 6482,
                                                                "name": "Identifier",
                                                                "src": "2542:4:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "4450",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "string",
                                                                    "type": "literal_string \"DP\"",
                                                                    "value": "DP"
                                                                },
                                                                "id": 6483,
                                                                "name": "Literal",
                                                                "src": "2548:4:18"
                                                            }
                                                        ],
                                                        "id": 6484,
                                                        "name": "BinaryOperation",
                                                        "src": "2542:10:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "4f6e6c79204465706f736974617279207061727469636970616e74",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Only Depositary participant\"",
                                                            "value": "Only Depositary participant"
                                                        },
                                                        "id": 6485,
                                                        "name": "Literal",
                                                        "src": "2554:29:18"
                                                    }
                                                ],
                                                "id": 6486,
                                                "name": "FunctionCall",
                                                "src": "2534:50:18"
                                            }
                                        ],
                                        "id": 6487,
                                        "name": "ExpressionStatement",
                                        "src": "2534:50:18"
                                    },
                                    {
                                        "id": 6488,
                                        "name": "PlaceholderStatement",
                                        "src": "2595:1:18"
                                    }
                                ],
                                "id": 6489,
                                "name": "Block",
                                "src": "2469:135:18"
                            }
                        ],
                        "id": 6490,
                        "name": "ModifierDefinition",
                        "src": "2438:166:18"
                    },
                    {
                        "attributes": {
                            "name": "onlyIssueManager",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "sender",
                                            "scope": 6512,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6491,
                                                "name": "ElementaryTypeName",
                                                "src": "2639:7:18"
                                            }
                                        ],
                                        "id": 6492,
                                        "name": "VariableDeclaration",
                                        "src": "2639:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 6512,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6493,
                                                "name": "ElementaryTypeName",
                                                "src": "2655:7:18"
                                            }
                                        ],
                                        "id": 6494,
                                        "name": "VariableDeclaration",
                                        "src": "2655:16:18"
                                    }
                                ],
                                "id": 6495,
                                "name": "ParameterList",
                                "src": "2638:34:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6497
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "DP",
                                                    "scope": 6511,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 6496,
                                                        "name": "ElementaryTypeName",
                                                        "src": "2683:7:18"
                                                    }
                                                ],
                                                "id": 6497,
                                                "name": "VariableDeclaration",
                                                "src": "2683:10:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getDP",
                                                            "referencedDeclaration": 11116,
                                                            "type": "function (address) view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6408,
                                                                    "type": "contract IFactory",
                                                                    "value": "products"
                                                                },
                                                                "id": 6498,
                                                                "name": "Identifier",
                                                                "src": "2696:8:18"
                                                            }
                                                        ],
                                                        "id": 6499,
                                                        "name": "MemberAccess",
                                                        "src": "2696:14:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6494,
                                                            "type": "address",
                                                            "value": "security"
                                                        },
                                                        "id": 6500,
                                                        "name": "Identifier",
                                                        "src": "2711:8:18"
                                                    }
                                                ],
                                                "id": 6501,
                                                "name": "FunctionCall",
                                                "src": "2696:24:18"
                                            }
                                        ],
                                        "id": 6502,
                                        "name": "VariableDeclarationStatement",
                                        "src": "2683:37:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_9b8450a267bdfe8b71f7bef015e8fa3501a6a6639639e243df5adcdb48a65296",
                                                                    "typeString": "literal_string \"Only Issue manager\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6503,
                                                        "name": "Identifier",
                                                        "src": "2731:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6497,
                                                                    "type": "address",
                                                                    "value": "DP"
                                                                },
                                                                "id": 6504,
                                                                "name": "Identifier",
                                                                "src": "2739:2:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6492,
                                                                    "type": "address",
                                                                    "value": "sender"
                                                                },
                                                                "id": 6505,
                                                                "name": "Identifier",
                                                                "src": "2743:6:18"
                                                            }
                                                        ],
                                                        "id": 6506,
                                                        "name": "BinaryOperation",
                                                        "src": "2739:10:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "4f6e6c79204973737565206d616e61676572",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Only Issue manager\"",
                                                            "value": "Only Issue manager"
                                                        },
                                                        "id": 6507,
                                                        "name": "Literal",
                                                        "src": "2751:20:18"
                                                    }
                                                ],
                                                "id": 6508,
                                                "name": "FunctionCall",
                                                "src": "2731:41:18"
                                            }
                                        ],
                                        "id": 6509,
                                        "name": "ExpressionStatement",
                                        "src": "2731:41:18"
                                    },
                                    {
                                        "id": 6510,
                                        "name": "PlaceholderStatement",
                                        "src": "2783:1:18"
                                    }
                                ],
                                "id": 6511,
                                "name": "Block",
                                "src": "2672:120:18"
                            }
                        ],
                        "id": 6512,
                        "name": "ModifierDefinition",
                        "src": "2613:179:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "offeredTokens",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address[]",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "address[]"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 6513,
                                        "name": "ElementaryTypeName",
                                        "src": "2831:7:18"
                                    }
                                ],
                                "id": 6514,
                                "name": "ArrayTypeName",
                                "src": "2831:9:18"
                            }
                        ],
                        "id": 6515,
                        "name": "VariableDeclaration",
                        "src": "2831:32:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "offeredTokenIndex",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => uint256)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6516,
                                        "name": "ElementaryTypeName",
                                        "src": "2956:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 6517,
                                        "name": "ElementaryTypeName",
                                        "src": "2967:7:18"
                                    }
                                ],
                                "id": 6518,
                                "name": "Mapping",
                                "src": "2948:27:18"
                            }
                        ],
                        "id": 6519,
                        "name": "VariableDeclaration",
                        "src": "2948:53:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "toMatchTokens",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => struct IMarketMaker.token[])",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => struct IMarketMaker.token[])"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6520,
                                        "name": "ElementaryTypeName",
                                        "src": "3050:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "struct IMarketMaker.token[]"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "token",
                                                    "referencedDeclaration": 11675,
                                                    "type": "struct IMarketMaker.token"
                                                },
                                                "id": 6521,
                                                "name": "UserDefinedTypeName",
                                                "src": "3061:5:18"
                                            }
                                        ],
                                        "id": 6522,
                                        "name": "ArrayTypeName",
                                        "src": "3061:7:18"
                                    }
                                ],
                                "id": 6523,
                                "name": "Mapping",
                                "src": "3042:27:18"
                            }
                        ],
                        "id": 6524,
                        "name": "VariableDeclaration",
                        "src": "3042:50:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "mmtokens",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(address => struct IMarketMaker.token[]))",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(address => struct IMarketMaker.token[]))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6525,
                                        "name": "ElementaryTypeName",
                                        "src": "3203:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => struct IMarketMaker.token[])"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 6526,
                                                "name": "ElementaryTypeName",
                                                "src": "3222:7:18"
                                            },
                                            {
                                                "attributes": {
                                                    "type": "struct IMarketMaker.token[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "token",
                                                            "referencedDeclaration": 11675,
                                                            "type": "struct IMarketMaker.token"
                                                        },
                                                        "id": 6527,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "3233:5:18"
                                                    }
                                                ],
                                                "id": 6528,
                                                "name": "ArrayTypeName",
                                                "src": "3233:7:18"
                                            }
                                        ],
                                        "id": 6529,
                                        "name": "Mapping",
                                        "src": "3214:27:18"
                                    }
                                ],
                                "id": 6530,
                                "name": "Mapping",
                                "src": "3195:47:18"
                            }
                        ],
                        "id": 6531,
                        "name": "VariableDeclaration",
                        "src": "3195:65:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "pairedTokens",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => address[])",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => address[])"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6532,
                                        "name": "ElementaryTypeName",
                                        "src": "3348:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "address[]"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6533,
                                                "name": "ElementaryTypeName",
                                                "src": "3359:7:18"
                                            }
                                        ],
                                        "id": 6534,
                                        "name": "ArrayTypeName",
                                        "src": "3359:9:18"
                                    }
                                ],
                                "id": 6535,
                                "name": "Mapping",
                                "src": "3340:29:18"
                            }
                        ],
                        "id": 6536,
                        "name": "VariableDeclaration",
                        "src": "3340:51:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "pairedTokenIndex",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(address => uint256))",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(address => uint256))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6537,
                                        "name": "ElementaryTypeName",
                                        "src": "3487:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 6538,
                                                "name": "ElementaryTypeName",
                                                "src": "3506:7:18"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6539,
                                                "name": "ElementaryTypeName",
                                                "src": "3517:7:18"
                                            }
                                        ],
                                        "id": 6540,
                                        "name": "Mapping",
                                        "src": "3498:27:18"
                                    }
                                ],
                                "id": 6541,
                                "name": "Mapping",
                                "src": "3479:47:18"
                            }
                        ],
                        "id": 6542,
                        "name": "VariableDeclaration",
                        "src": "3479:72:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "qlTokens",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity))",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6543,
                                        "name": "ElementaryTypeName",
                                        "src": "3669:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => struct IMarketMaker.liquidity)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 6544,
                                                "name": "ElementaryTypeName",
                                                "src": "3688:7:18"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "liquidity",
                                                    "referencedDeclaration": 11684,
                                                    "type": "struct IMarketMaker.liquidity"
                                                },
                                                "id": 6545,
                                                "name": "UserDefinedTypeName",
                                                "src": "3699:9:18"
                                            }
                                        ],
                                        "id": 6546,
                                        "name": "Mapping",
                                        "src": "3680:29:18"
                                    }
                                ],
                                "id": 6547,
                                "name": "Mapping",
                                "src": "3661:49:18"
                            }
                        ],
                        "id": 6548,
                        "name": "VariableDeclaration",
                        "src": "3661:67:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "liquidityProviders",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => struct IMarketMaker.lp[])",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => struct IMarketMaker.lp[])"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6549,
                                        "name": "ElementaryTypeName",
                                        "src": "3793:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "struct IMarketMaker.lp[]"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "lp",
                                                    "referencedDeclaration": 11695,
                                                    "type": "struct IMarketMaker.lp"
                                                },
                                                "id": 6550,
                                                "name": "UserDefinedTypeName",
                                                "src": "3804:2:18"
                                            }
                                        ],
                                        "id": 6551,
                                        "name": "ArrayTypeName",
                                        "src": "3804:4:18"
                                    }
                                ],
                                "id": 6552,
                                "name": "Mapping",
                                "src": "3785:24:18"
                            }
                        ],
                        "id": 6553,
                        "name": "VariableDeclaration",
                        "src": "3785:51:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "totalUnderwritten",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => uint256)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6554,
                                        "name": "ElementaryTypeName",
                                        "src": "3940:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 6555,
                                        "name": "ElementaryTypeName",
                                        "src": "3951:7:18"
                                    }
                                ],
                                "id": 6556,
                                "name": "Mapping",
                                "src": "3932:27:18"
                            }
                        ],
                        "id": 6557,
                        "name": "VariableDeclaration",
                        "src": "3932:53:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "underwriters",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => mapping(address => uint256))",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => mapping(address => uint256))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 6558,
                                        "name": "ElementaryTypeName",
                                        "src": "4073:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 6559,
                                                "name": "ElementaryTypeName",
                                                "src": "4092:7:18"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6560,
                                                "name": "ElementaryTypeName",
                                                "src": "4103:7:18"
                                            }
                                        ],
                                        "id": 6561,
                                        "name": "Mapping",
                                        "src": "4084:27:18"
                                    }
                                ],
                                "id": 6562,
                                "name": "Mapping",
                                "src": "4065:47:18"
                            }
                        ],
                        "id": 6563,
                        "name": "VariableDeclaration",
                        "src": "4065:68:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "issues",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => struct IMarketMaker.primary)",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => struct IMarketMaker.primary)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6564,
                                        "name": "ElementaryTypeName",
                                        "src": "4219:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "name": "primary",
                                            "referencedDeclaration": 11703,
                                            "type": "struct IMarketMaker.primary"
                                        },
                                        "id": 6565,
                                        "name": "UserDefinedTypeName",
                                        "src": "4230:7:18"
                                    }
                                ],
                                "id": 6566,
                                "name": "Mapping",
                                "src": "4211:27:18"
                            }
                        ],
                        "id": 6567,
                        "name": "VariableDeclaration",
                        "src": "4211:43:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "investors",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions[])",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions[])"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 6568,
                                        "name": "ElementaryTypeName",
                                        "src": "4354:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "struct IMarketMaker.subscriptions[]"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "subscriptions",
                                                    "referencedDeclaration": 11714,
                                                    "type": "struct IMarketMaker.subscriptions"
                                                },
                                                "id": 6569,
                                                "name": "UserDefinedTypeName",
                                                "src": "4365:13:18"
                                            }
                                        ],
                                        "id": 6570,
                                        "name": "ArrayTypeName",
                                        "src": "4365:15:18"
                                    }
                                ],
                                "id": 6571,
                                "name": "Mapping",
                                "src": "4346:35:18"
                            }
                        ],
                        "id": 6572,
                        "name": "VariableDeclaration",
                        "src": "4346:54:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "subscriberIndex",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => mapping(address => uint256))",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => mapping(address => uint256))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 6573,
                                        "name": "ElementaryTypeName",
                                        "src": "4526:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 6574,
                                                "name": "ElementaryTypeName",
                                                "src": "4545:7:18"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6575,
                                                "name": "ElementaryTypeName",
                                                "src": "4556:7:18"
                                            }
                                        ],
                                        "id": 6576,
                                        "name": "Mapping",
                                        "src": "4537:27:18"
                                    }
                                ],
                                "id": 6577,
                                "name": "Mapping",
                                "src": "4518:47:18"
                            }
                        ],
                        "id": 6578,
                        "name": "VariableDeclaration",
                        "src": "4518:71:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "subscribed",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => mapping(address => uint256))",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => mapping(address => uint256))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 6579,
                                        "name": "ElementaryTypeName",
                                        "src": "4663:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 6580,
                                                "name": "ElementaryTypeName",
                                                "src": "4682:7:18"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6581,
                                                "name": "ElementaryTypeName",
                                                "src": "4693:7:18"
                                            }
                                        ],
                                        "id": 6582,
                                        "name": "Mapping",
                                        "src": "4674:27:18"
                                    }
                                ],
                                "id": 6583,
                                "name": "Mapping",
                                "src": "4655:47:18"
                            }
                        ],
                        "id": 6584,
                        "name": "VariableDeclaration",
                        "src": "4655:66:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "pools",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => address)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => address)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 6585,
                                        "name": "ElementaryTypeName",
                                        "src": "4778:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 6586,
                                        "name": "ElementaryTypeName",
                                        "src": "4789:7:18"
                                    }
                                ],
                                "id": 6587,
                                "name": "Mapping",
                                "src": "4770:27:18"
                            }
                        ],
                        "id": 6588,
                        "name": "VariableDeclaration",
                        "src": "4770:41:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "poolSecurity",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => address)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => address)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 6589,
                                        "name": "ElementaryTypeName",
                                        "src": "4878:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 6590,
                                        "name": "ElementaryTypeName",
                                        "src": "4889:7:18"
                                    }
                                ],
                                "id": 6591,
                                "name": "Mapping",
                                "src": "4870:27:18"
                            }
                        ],
                        "id": 6592,
                        "name": "VariableDeclaration",
                        "src": "4870:48:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "LPTokenAllotted",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(address => uint256))",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(address => uint256))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6593,
                                        "name": "ElementaryTypeName",
                                        "src": "4968:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 6594,
                                                "name": "ElementaryTypeName",
                                                "src": "4988:7:18"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6595,
                                                "name": "ElementaryTypeName",
                                                "src": "4999:7:18"
                                            }
                                        ],
                                        "id": 6596,
                                        "name": "Mapping",
                                        "src": "4979:28:18"
                                    }
                                ],
                                "id": 6597,
                                "name": "Mapping",
                                "src": "4960:48:18"
                            }
                        ],
                        "id": 6598,
                        "name": "VariableDeclaration",
                        "src": "4960:72:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "fees",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => uint256)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6599,
                                        "name": "ElementaryTypeName",
                                        "src": "5104:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 6600,
                                        "name": "ElementaryTypeName",
                                        "src": "5115:7:18"
                                    }
                                ],
                                "id": 6601,
                                "name": "Mapping",
                                "src": "5096:27:18"
                            }
                        ],
                        "id": 6602,
                        "name": "VariableDeclaration",
                        "src": "5096:40:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "customFee",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(address => uint256))",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(address => uint256))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 6603,
                                        "name": "ElementaryTypeName",
                                        "src": "5218:7:18"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 6604,
                                                "name": "ElementaryTypeName",
                                                "src": "5237:7:18"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6605,
                                                "name": "ElementaryTypeName",
                                                "src": "5248:7:18"
                                            }
                                        ],
                                        "id": 6606,
                                        "name": "Mapping",
                                        "src": "5229:27:18"
                                    }
                                ],
                                "id": 6607,
                                "name": "Mapping",
                                "src": "5210:47:18"
                            }
                        ],
                        "id": 6608,
                        "name": "VariableDeclaration",
                        "src": "5210:65:18"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "revshare",
                            "scope": 9283,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "uint256",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 6609,
                                "name": "ElementaryTypeName",
                                "src": "5329:7:18"
                            }
                        ],
                        "id": 6610,
                        "name": "VariableDeclaration",
                        "src": "5329:24:18"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "marketmakers"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 6626,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6611,
                                                "name": "ElementaryTypeName",
                                                "src": "5381:7:18"
                                            }
                                        ],
                                        "id": 6612,
                                        "name": "VariableDeclaration",
                                        "src": "5381:24:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "platform",
                                            "scope": 6626,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6613,
                                                "name": "ElementaryTypeName",
                                                "src": "5407:7:18"
                                            }
                                        ],
                                        "id": 6614,
                                        "name": "VariableDeclaration",
                                        "src": "5407:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "provider",
                                            "scope": 6626,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6615,
                                                "name": "ElementaryTypeName",
                                                "src": "5425:7:18"
                                            }
                                        ],
                                        "id": 6616,
                                        "name": "VariableDeclaration",
                                        "src": "5425:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 6626,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6617,
                                                "name": "ElementaryTypeName",
                                                "src": "5443:7:18"
                                            }
                                        ],
                                        "id": 6618,
                                        "name": "VariableDeclaration",
                                        "src": "5443:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "tokenOffered",
                                            "scope": 6626,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6619,
                                                "name": "ElementaryTypeName",
                                                "src": "5461:7:18"
                                            }
                                        ],
                                        "id": 6620,
                                        "name": "VariableDeclaration",
                                        "src": "5461:20:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "underwritten",
                                            "scope": 6626,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6621,
                                                "name": "ElementaryTypeName",
                                                "src": "5483:7:18"
                                            }
                                        ],
                                        "id": 6622,
                                        "name": "VariableDeclaration",
                                        "src": "5483:20:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "earnings",
                                            "scope": 6626,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6623,
                                                "name": "ElementaryTypeName",
                                                "src": "5505:7:18"
                                            }
                                        ],
                                        "id": 6624,
                                        "name": "VariableDeclaration",
                                        "src": "5505:16:18"
                                    }
                                ],
                                "id": 6625,
                                "name": "ParameterList",
                                "src": "5380:142:18"
                            }
                        ],
                        "id": 6626,
                        "name": "EventDefinition",
                        "src": "5362:161:18"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "subscribers"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 6644,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6627,
                                                "name": "ElementaryTypeName",
                                                "src": "5547:7:18"
                                            }
                                        ],
                                        "id": 6628,
                                        "name": "VariableDeclaration",
                                        "src": "5547:24:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 6644,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6629,
                                                "name": "ElementaryTypeName",
                                                "src": "5573:7:18"
                                            }
                                        ],
                                        "id": 6630,
                                        "name": "VariableDeclaration",
                                        "src": "5573:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "investor",
                                            "scope": 6644,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6631,
                                                "name": "ElementaryTypeName",
                                                "src": "5589:7:18"
                                            }
                                        ],
                                        "id": 6632,
                                        "name": "VariableDeclaration",
                                        "src": "5589:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 6644,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6633,
                                                "name": "ElementaryTypeName",
                                                "src": "5607:7:18"
                                            }
                                        ],
                                        "id": 6634,
                                        "name": "VariableDeclaration",
                                        "src": "5607:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "cashSwapped",
                                            "scope": 6644,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6635,
                                                "name": "ElementaryTypeName",
                                                "src": "5625:7:18"
                                            }
                                        ],
                                        "id": 6636,
                                        "name": "VariableDeclaration",
                                        "src": "5625:19:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "securitySwapped",
                                            "scope": 6644,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6637,
                                                "name": "ElementaryTypeName",
                                                "src": "5646:7:18"
                                            }
                                        ],
                                        "id": 6638,
                                        "name": "VariableDeclaration",
                                        "src": "5646:23:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "timestamp",
                                            "scope": 6644,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6639,
                                                "name": "ElementaryTypeName",
                                                "src": "5671:7:18"
                                            }
                                        ],
                                        "id": 6640,
                                        "name": "VariableDeclaration",
                                        "src": "5671:17:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "subscription",
                                            "scope": 6644,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 6641,
                                                "name": "ElementaryTypeName",
                                                "src": "5690:4:18"
                                            }
                                        ],
                                        "id": 6642,
                                        "name": "VariableDeclaration",
                                        "src": "5690:17:18"
                                    }
                                ],
                                "id": 6643,
                                "name": "ParameterList",
                                "src": "5546:162:18"
                            }
                        ],
                        "id": 6644,
                        "name": "EventDefinition",
                        "src": "5529:180:18"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "offers"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "party",
                                            "scope": 6664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6645,
                                                "name": "ElementaryTypeName",
                                                "src": "5728:7:18"
                                            }
                                        ],
                                        "id": 6646,
                                        "name": "VariableDeclaration",
                                        "src": "5728:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "offered",
                                            "scope": 6664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6647,
                                                "name": "ElementaryTypeName",
                                                "src": "5743:7:18"
                                            }
                                        ],
                                        "id": 6648,
                                        "name": "VariableDeclaration",
                                        "src": "5743:23:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "amountOffered",
                                            "scope": 6664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6649,
                                                "name": "ElementaryTypeName",
                                                "src": "5768:7:18"
                                            }
                                        ],
                                        "id": 6650,
                                        "name": "VariableDeclaration",
                                        "src": "5768:21:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "tomatch",
                                            "scope": 6664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6651,
                                                "name": "ElementaryTypeName",
                                                "src": "5791:7:18"
                                            }
                                        ],
                                        "id": 6652,
                                        "name": "VariableDeclaration",
                                        "src": "5791:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "amountDesired",
                                            "scope": 6664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6653,
                                                "name": "ElementaryTypeName",
                                                "src": "5808:7:18"
                                            }
                                        ],
                                        "id": 6654,
                                        "name": "VariableDeclaration",
                                        "src": "5808:21:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "minAmount",
                                            "scope": 6664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6655,
                                                "name": "ElementaryTypeName",
                                                "src": "5831:7:18"
                                            }
                                        ],
                                        "id": 6656,
                                        "name": "VariableDeclaration",
                                        "src": "5831:17:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "isin",
                                            "scope": 6664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6657,
                                                "name": "ElementaryTypeName",
                                                "src": "5850:7:18"
                                            }
                                        ],
                                        "id": 6658,
                                        "name": "VariableDeclaration",
                                        "src": "5850:12:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "minimumOrderSize",
                                            "scope": 6664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6659,
                                                "name": "ElementaryTypeName",
                                                "src": "5864:7:18"
                                            }
                                        ],
                                        "id": 6660,
                                        "name": "VariableDeclaration",
                                        "src": "5864:24:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "offeringDocs",
                                            "scope": 6664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "string",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 6661,
                                                "name": "ElementaryTypeName",
                                                "src": "5890:6:18"
                                            }
                                        ],
                                        "id": 6662,
                                        "name": "VariableDeclaration",
                                        "src": "5890:19:18"
                                    }
                                ],
                                "id": 6663,
                                "name": "ParameterList",
                                "src": "5727:183:18"
                            }
                        ],
                        "id": 6664,
                        "name": "EventDefinition",
                        "src": "5715:196:18"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "closures"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 6672,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6665,
                                                "name": "ElementaryTypeName",
                                                "src": "5932:7:18"
                                            }
                                        ],
                                        "id": 6666,
                                        "name": "VariableDeclaration",
                                        "src": "5932:22:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 6672,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6667,
                                                "name": "ElementaryTypeName",
                                                "src": "5956:7:18"
                                            }
                                        ],
                                        "id": 6668,
                                        "name": "VariableDeclaration",
                                        "src": "5956:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "timestamp",
                                            "scope": 6672,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6669,
                                                "name": "ElementaryTypeName",
                                                "src": "5974:7:18"
                                            }
                                        ],
                                        "id": 6670,
                                        "name": "VariableDeclaration",
                                        "src": "5974:17:18"
                                    }
                                ],
                                "id": 6671,
                                "name": "ParameterList",
                                "src": "5931:61:18"
                            }
                        ],
                        "id": 6672,
                        "name": "EventDefinition",
                        "src": "5917:76:18"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "allotments"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 6688,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6673,
                                                "name": "ElementaryTypeName",
                                                "src": "6016:7:18"
                                            }
                                        ],
                                        "id": 6674,
                                        "name": "VariableDeclaration",
                                        "src": "6016:22:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "investor",
                                            "scope": 6688,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6675,
                                                "name": "ElementaryTypeName",
                                                "src": "6040:7:18"
                                            }
                                        ],
                                        "id": 6676,
                                        "name": "VariableDeclaration",
                                        "src": "6040:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 6688,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6677,
                                                "name": "ElementaryTypeName",
                                                "src": "6058:7:18"
                                            }
                                        ],
                                        "id": 6678,
                                        "name": "VariableDeclaration",
                                        "src": "6058:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "securitySubscription",
                                            "scope": 6688,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6679,
                                                "name": "ElementaryTypeName",
                                                "src": "6076:7:18"
                                            }
                                        ],
                                        "id": 6680,
                                        "name": "VariableDeclaration",
                                        "src": "6076:28:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 6688,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6681,
                                                "name": "ElementaryTypeName",
                                                "src": "6106:7:18"
                                            }
                                        ],
                                        "id": 6682,
                                        "name": "VariableDeclaration",
                                        "src": "6106:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "allotedAmount",
                                            "scope": 6688,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6683,
                                                "name": "ElementaryTypeName",
                                                "src": "6124:7:18"
                                            }
                                        ],
                                        "id": 6684,
                                        "name": "VariableDeclaration",
                                        "src": "6124:21:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "timestamp",
                                            "scope": 6688,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6685,
                                                "name": "ElementaryTypeName",
                                                "src": "6147:7:18"
                                            }
                                        ],
                                        "id": 6686,
                                        "name": "VariableDeclaration",
                                        "src": "6147:17:18"
                                    }
                                ],
                                "id": 6687,
                                "name": "ParameterList",
                                "src": "6015:150:18"
                            }
                        ],
                        "id": 6688,
                        "name": "EventDefinition",
                        "src": "5999:167:18"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "refunds"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 6704,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6689,
                                                "name": "ElementaryTypeName",
                                                "src": "6186:7:18"
                                            }
                                        ],
                                        "id": 6690,
                                        "name": "VariableDeclaration",
                                        "src": "6186:22:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "investor",
                                            "scope": 6704,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6691,
                                                "name": "ElementaryTypeName",
                                                "src": "6210:7:18"
                                            }
                                        ],
                                        "id": 6692,
                                        "name": "VariableDeclaration",
                                        "src": "6210:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 6704,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6693,
                                                "name": "ElementaryTypeName",
                                                "src": "6228:7:18"
                                            }
                                        ],
                                        "id": 6694,
                                        "name": "VariableDeclaration",
                                        "src": "6228:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "securitySubscription",
                                            "scope": 6704,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6695,
                                                "name": "ElementaryTypeName",
                                                "src": "6246:7:18"
                                            }
                                        ],
                                        "id": 6696,
                                        "name": "VariableDeclaration",
                                        "src": "6246:28:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 6704,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6697,
                                                "name": "ElementaryTypeName",
                                                "src": "6276:7:18"
                                            }
                                        ],
                                        "id": 6698,
                                        "name": "VariableDeclaration",
                                        "src": "6276:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "refundAmount",
                                            "scope": 6704,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6699,
                                                "name": "ElementaryTypeName",
                                                "src": "6294:7:18"
                                            }
                                        ],
                                        "id": 6700,
                                        "name": "VariableDeclaration",
                                        "src": "6294:20:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "timestamp",
                                            "scope": 6704,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6701,
                                                "name": "ElementaryTypeName",
                                                "src": "6316:7:18"
                                            }
                                        ],
                                        "id": 6702,
                                        "name": "VariableDeclaration",
                                        "src": "6316:17:18"
                                    }
                                ],
                                "id": 6703,
                                "name": "ParameterList",
                                "src": "6185:149:18"
                            }
                        ],
                        "id": 6704,
                        "name": "EventDefinition",
                        "src": "6172:163:18"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "settlements"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 6720,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6705,
                                                "name": "ElementaryTypeName",
                                                "src": "6359:7:18"
                                            }
                                        ],
                                        "id": 6706,
                                        "name": "VariableDeclaration",
                                        "src": "6359:22:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 6720,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6707,
                                                "name": "ElementaryTypeName",
                                                "src": "6383:7:18"
                                            }
                                        ],
                                        "id": 6708,
                                        "name": "VariableDeclaration",
                                        "src": "6383:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 6720,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6709,
                                                "name": "ElementaryTypeName",
                                                "src": "6401:7:18"
                                            }
                                        ],
                                        "id": 6710,
                                        "name": "VariableDeclaration",
                                        "src": "6401:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "liquidityProvider",
                                            "scope": 6720,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6711,
                                                "name": "ElementaryTypeName",
                                                "src": "6419:7:18"
                                            }
                                        ],
                                        "id": 6712,
                                        "name": "VariableDeclaration",
                                        "src": "6419:25:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "underwritingFee",
                                            "scope": 6720,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6713,
                                                "name": "ElementaryTypeName",
                                                "src": "6446:7:18"
                                            }
                                        ],
                                        "id": 6714,
                                        "name": "VariableDeclaration",
                                        "src": "6446:23:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "issuer",
                                            "scope": 6720,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6715,
                                                "name": "ElementaryTypeName",
                                                "src": "6471:7:18"
                                            }
                                        ],
                                        "id": 6716,
                                        "name": "VariableDeclaration",
                                        "src": "6471:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "subscription",
                                            "scope": 6720,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6717,
                                                "name": "ElementaryTypeName",
                                                "src": "6487:7:18"
                                            }
                                        ],
                                        "id": 6718,
                                        "name": "VariableDeclaration",
                                        "src": "6487:20:18"
                                    }
                                ],
                                "id": 6719,
                                "name": "ParameterList",
                                "src": "6358:150:18"
                            }
                        ],
                        "id": 6720,
                        "name": "EventDefinition",
                        "src": "6341:168:18"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "feecollection"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "platform",
                                            "scope": 6728,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6721,
                                                "name": "ElementaryTypeName",
                                                "src": "6535:7:18"
                                            }
                                        ],
                                        "id": 6722,
                                        "name": "VariableDeclaration",
                                        "src": "6535:24:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "collection",
                                            "scope": 6728,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6723,
                                                "name": "ElementaryTypeName",
                                                "src": "6561:7:18"
                                            }
                                        ],
                                        "id": 6724,
                                        "name": "VariableDeclaration",
                                        "src": "6561:18:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "timestamp",
                                            "scope": 6728,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6725,
                                                "name": "ElementaryTypeName",
                                                "src": "6581:7:18"
                                            }
                                        ],
                                        "id": 6726,
                                        "name": "VariableDeclaration",
                                        "src": "6581:17:18"
                                    }
                                ],
                                "id": 6727,
                                "name": "ParameterList",
                                "src": "6534:65:18"
                            }
                        ],
                        "id": 6728,
                        "name": "EventDefinition",
                        "src": "6515:85:18"
                    },
                    {
                        "attributes": {
                            "functionSelector": "41c8b268",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "initialize",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Initializes this asset management contract\n@param  _factory            reference to the primary issue pool factory contract\n@param  _swapFeePercentage  percentage of trading fee to be charged by the asset manager\n@param  _vault              reference to the Balancer vault\n@param  _products           reference to the Verified Products contract that this contract reports created primary issue pools to"
                                },
                                "id": 6729,
                                "name": "StructuredDocumentation",
                                "src": "6608:460:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_factory",
                                            "scope": 6781,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6730,
                                                "name": "ElementaryTypeName",
                                                "src": "7094:7:18"
                                            }
                                        ],
                                        "id": 6731,
                                        "name": "VariableDeclaration",
                                        "src": "7094:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_swapFeePercentage",
                                            "scope": 6781,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6732,
                                                "name": "ElementaryTypeName",
                                                "src": "7112:7:18"
                                            }
                                        ],
                                        "id": 6733,
                                        "name": "VariableDeclaration",
                                        "src": "7112:26:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_vault",
                                            "scope": 6781,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6734,
                                                "name": "ElementaryTypeName",
                                                "src": "7140:7:18"
                                            }
                                        ],
                                        "id": 6735,
                                        "name": "VariableDeclaration",
                                        "src": "7140:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_products",
                                            "scope": 6781,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6736,
                                                "name": "ElementaryTypeName",
                                                "src": "7156:7:18"
                                            }
                                        ],
                                        "id": 6737,
                                        "name": "VariableDeclaration",
                                        "src": "7156:17:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_liquidity",
                                            "scope": 6781,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6738,
                                                "name": "ElementaryTypeName",
                                                "src": "7175:7:18"
                                            }
                                        ],
                                        "id": 6739,
                                        "name": "VariableDeclaration",
                                        "src": "7175:18:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_client",
                                            "scope": 6781,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6740,
                                                "name": "ElementaryTypeName",
                                                "src": "7195:7:18"
                                            }
                                        ],
                                        "id": 6741,
                                        "name": "VariableDeclaration",
                                        "src": "7195:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_distribution",
                                            "scope": 6781,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6742,
                                                "name": "ElementaryTypeName",
                                                "src": "7212:7:18"
                                            }
                                        ],
                                        "id": 6743,
                                        "name": "VariableDeclaration",
                                        "src": "7212:21:18"
                                    }
                                ],
                                "id": 6744,
                                "name": "ParameterList",
                                "src": "7093:141:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6747,
                                "name": "ParameterList",
                                "src": "7252:0:18"
                            },
                            {
                                "attributes": {},
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 2993,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 6745,
                                        "name": "Identifier",
                                        "src": "7242:9:18"
                                    }
                                ],
                                "id": 6746,
                                "name": "ModifierInvocation",
                                "src": "7242:9:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6390,
                                                            "type": "address",
                                                            "value": "factory"
                                                        },
                                                        "id": 6748,
                                                        "name": "Identifier",
                                                        "src": "7263:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6731,
                                                            "type": "address",
                                                            "value": "_factory"
                                                        },
                                                        "id": 6749,
                                                        "name": "Identifier",
                                                        "src": "7273:8:18"
                                                    }
                                                ],
                                                "id": 6750,
                                                "name": "Assignment",
                                                "src": "7263:18:18"
                                            }
                                        ],
                                        "id": 6751,
                                        "name": "ExpressionStatement",
                                        "src": "7263:18:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6392,
                                                            "type": "address",
                                                            "value": "vault"
                                                        },
                                                        "id": 6752,
                                                        "name": "Identifier",
                                                        "src": "7292:5:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6735,
                                                            "type": "address",
                                                            "value": "_vault"
                                                        },
                                                        "id": 6753,
                                                        "name": "Identifier",
                                                        "src": "7300:6:18"
                                                    }
                                                ],
                                                "id": 6754,
                                                "name": "Assignment",
                                                "src": "7292:14:18"
                                            }
                                        ],
                                        "id": 6755,
                                        "name": "ExpressionStatement",
                                        "src": "7292:14:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract IFactory"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6408,
                                                            "type": "contract IFactory",
                                                            "value": "products"
                                                        },
                                                        "id": 6756,
                                                        "name": "Identifier",
                                                        "src": "7325:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "contract IFactory",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 11117,
                                                                    "type": "type(contract IFactory)",
                                                                    "value": "IFactory"
                                                                },
                                                                "id": 6757,
                                                                "name": "Identifier",
                                                                "src": "7336:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6737,
                                                                    "type": "address",
                                                                    "value": "_products"
                                                                },
                                                                "id": 6758,
                                                                "name": "Identifier",
                                                                "src": "7345:9:18"
                                                            }
                                                        ],
                                                        "id": 6759,
                                                        "name": "FunctionCall",
                                                        "src": "7336:19:18"
                                                    }
                                                ],
                                                "id": 6760,
                                                "name": "Assignment",
                                                "src": "7325:30:18"
                                            }
                                        ],
                                        "id": 6761,
                                        "name": "ExpressionStatement",
                                        "src": "7325:30:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract VerifiedClient"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6410,
                                                            "type": "contract VerifiedClient",
                                                            "value": "client"
                                                        },
                                                        "id": 6762,
                                                        "name": "Identifier",
                                                        "src": "7374:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "contract VerifiedClient",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12414,
                                                                    "type": "type(contract VerifiedClient)",
                                                                    "value": "VerifiedClient"
                                                                },
                                                                "id": 6763,
                                                                "name": "Identifier",
                                                                "src": "7383:14:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6741,
                                                                    "type": "address",
                                                                    "value": "_client"
                                                                },
                                                                "id": 6764,
                                                                "name": "Identifier",
                                                                "src": "7398:7:18"
                                                            }
                                                        ],
                                                        "id": 6765,
                                                        "name": "FunctionCall",
                                                        "src": "7383:23:18"
                                                    }
                                                ],
                                                "id": 6766,
                                                "name": "Assignment",
                                                "src": "7374:32:18"
                                            }
                                        ],
                                        "id": 6767,
                                        "name": "ExpressionStatement",
                                        "src": "7374:32:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6395,
                                                            "type": "uint256",
                                                            "value": "swapFeePercentage"
                                                        },
                                                        "id": 6768,
                                                        "name": "Identifier",
                                                        "src": "7417:17:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6733,
                                                            "type": "uint256",
                                                            "value": "_swapFeePercentage"
                                                        },
                                                        "id": 6769,
                                                        "name": "Identifier",
                                                        "src": "7437:18:18"
                                                    }
                                                ],
                                                "id": 6770,
                                                "name": "Assignment",
                                                "src": "7417:38:18"
                                            }
                                        ],
                                        "id": 6771,
                                        "name": "ExpressionStatement",
                                        "src": "7417:38:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6412,
                                                            "type": "address",
                                                            "value": "LiquidityContract"
                                                        },
                                                        "id": 6772,
                                                        "name": "Identifier",
                                                        "src": "7466:17:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6739,
                                                            "type": "address",
                                                            "value": "_liquidity"
                                                        },
                                                        "id": 6773,
                                                        "name": "Identifier",
                                                        "src": "7486:10:18"
                                                    }
                                                ],
                                                "id": 6774,
                                                "name": "Assignment",
                                                "src": "7466:30:18"
                                            }
                                        ],
                                        "id": 6775,
                                        "name": "ExpressionStatement",
                                        "src": "7466:30:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6414,
                                                            "type": "address",
                                                            "value": "distribution"
                                                        },
                                                        "id": 6776,
                                                        "name": "Identifier",
                                                        "src": "7507:12:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6743,
                                                            "type": "address",
                                                            "value": "_distribution"
                                                        },
                                                        "id": 6777,
                                                        "name": "Identifier",
                                                        "src": "7522:13:18"
                                                    }
                                                ],
                                                "id": 6778,
                                                "name": "Assignment",
                                                "src": "7507:28:18"
                                            }
                                        ],
                                        "id": 6779,
                                        "name": "ExpressionStatement",
                                        "src": "7507:28:18"
                                    }
                                ],
                                "id": 6780,
                                "name": "Block",
                                "src": "7252:291:18"
                            }
                        ],
                        "id": 6781,
                        "name": "FunctionDefinition",
                        "src": "7074:469:18"
                    },
                    {
                        "attributes": {
                            "functionSelector": "69fe0e2d",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setFee",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_fee",
                                            "scope": 6793,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 6782,
                                                "name": "ElementaryTypeName",
                                                "src": "7567:7:18"
                                            }
                                        ],
                                        "id": 6783,
                                        "name": "VariableDeclaration",
                                        "src": "7567:12:18"
                                    }
                                ],
                                "id": 6784,
                                "name": "ParameterList",
                                "src": "7566:14:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6787,
                                "name": "ParameterList",
                                "src": "7598:0:18"
                            },
                            {
                                "attributes": {},
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 2993,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 6785,
                                        "name": "Identifier",
                                        "src": "7588:9:18"
                                    }
                                ],
                                "id": 6786,
                                "name": "ModifierInvocation",
                                "src": "7588:9:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6395,
                                                            "type": "uint256",
                                                            "value": "swapFeePercentage"
                                                        },
                                                        "id": 6788,
                                                        "name": "Identifier",
                                                        "src": "7609:17:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6783,
                                                            "type": "uint256",
                                                            "value": "_fee"
                                                        },
                                                        "id": 6789,
                                                        "name": "Identifier",
                                                        "src": "7629:4:18"
                                                    }
                                                ],
                                                "id": 6790,
                                                "name": "Assignment",
                                                "src": "7609:24:18"
                                            }
                                        ],
                                        "id": 6791,
                                        "name": "ExpressionStatement",
                                        "src": "7609:24:18"
                                    }
                                ],
                                "id": 6792,
                                "name": "Block",
                                "src": "7598:43:18"
                            }
                        ],
                        "id": 6793,
                        "name": "FunctionDefinition",
                        "src": "7551:90:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11733
                            ],
                            "functionSelector": "f3ea66ff",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "offer",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Called by market maker and issuer for adding liquidity\n@param  owned       is the security or settlement token on offer \n@param  offered     is the amount offered\n@param  tomatch     is the liquidity token that is required to be paired\n@param  desired     is the amount required of the liquidity token to be paired\n@param  min         is the minimum amount to be swapped of the 'offered' token \n@param  isin        is the identifier for the security token offered\n@param  owner       is the current holder of the owned token that is offered\n@param  docs        is the ipfs address of the offering docs"
                                },
                                "id": 6794,
                                "name": "StructuredDocumentation",
                                "src": "7649:695:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 6812,
                                "name": "OverrideSpecifier",
                                "src": "8485:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "owned",
                                            "scope": 6995,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6795,
                                                "name": "ElementaryTypeName",
                                                "src": "8366:7:18"
                                            }
                                        ],
                                        "id": 6796,
                                        "name": "VariableDeclaration",
                                        "src": "8366:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "isin",
                                            "scope": 6995,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 6797,
                                                "name": "ElementaryTypeName",
                                                "src": "8381:7:18"
                                            }
                                        ],
                                        "id": 6798,
                                        "name": "VariableDeclaration",
                                        "src": "8381:12:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "offered",
                                            "scope": 6995,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 6799,
                                                "name": "ElementaryTypeName",
                                                "src": "8395:4:18"
                                            }
                                        ],
                                        "id": 6800,
                                        "name": "VariableDeclaration",
                                        "src": "8395:12:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "tomatch",
                                            "scope": 6995,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6801,
                                                "name": "ElementaryTypeName",
                                                "src": "8409:7:18"
                                            }
                                        ],
                                        "id": 6802,
                                        "name": "VariableDeclaration",
                                        "src": "8409:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "desired",
                                            "scope": 6995,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 6803,
                                                "name": "ElementaryTypeName",
                                                "src": "8426:4:18"
                                            }
                                        ],
                                        "id": 6804,
                                        "name": "VariableDeclaration",
                                        "src": "8426:12:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "min",
                                            "scope": 6995,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 6805,
                                                "name": "ElementaryTypeName",
                                                "src": "8440:4:18"
                                            }
                                        ],
                                        "id": 6806,
                                        "name": "VariableDeclaration",
                                        "src": "8440:8:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "owner",
                                            "scope": 6995,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6807,
                                                "name": "ElementaryTypeName",
                                                "src": "8450:7:18"
                                            }
                                        ],
                                        "id": 6808,
                                        "name": "VariableDeclaration",
                                        "src": "8450:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "docs",
                                            "scope": 6995,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "string",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 6809,
                                                "name": "ElementaryTypeName",
                                                "src": "8465:6:18"
                                            }
                                        ],
                                        "id": 6810,
                                        "name": "VariableDeclaration",
                                        "src": "8465:18:18"
                                    }
                                ],
                                "id": 6811,
                                "name": "ParameterList",
                                "src": "8365:119:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 6813,
                                "name": "ParameterList",
                                "src": "8503:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_4d7e8735d7e6b589ad30b5c5e1b474202e9b129903b8fd6665655fc3dd59e1c8",
                                                                    "typeString": "literal_string \"Access locked\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6814,
                                                        "name": "Identifier",
                                                        "src": "8514:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!",
                                                            "prefix": true,
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6416,
                                                                    "type": "bool",
                                                                    "value": "lock"
                                                                },
                                                                "id": 6815,
                                                                "name": "Identifier",
                                                                "src": "8523:4:18"
                                                            }
                                                        ],
                                                        "id": 6816,
                                                        "name": "UnaryOperation",
                                                        "src": "8522:5:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "416363657373206c6f636b6564",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Access locked\"",
                                                            "value": "Access locked"
                                                        },
                                                        "id": 6817,
                                                        "name": "Literal",
                                                        "src": "8529:15:18"
                                                    }
                                                ],
                                                "id": 6818,
                                                "name": "FunctionCall",
                                                "src": "8514:31:18"
                                            }
                                        ],
                                        "id": 6819,
                                        "name": "ExpressionStatement",
                                        "src": "8514:31:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6416,
                                                            "type": "bool",
                                                            "value": "lock"
                                                        },
                                                        "id": 6820,
                                                        "name": "Identifier",
                                                        "src": "8556:4:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "74727565",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "true"
                                                        },
                                                        "id": 6821,
                                                        "name": "Literal",
                                                        "src": "8563:4:18"
                                                    }
                                                ],
                                                "id": 6822,
                                                "name": "Assignment",
                                                "src": "8556:11:18"
                                            }
                                        ],
                                        "id": 6823,
                                        "name": "ExpressionStatement",
                                        "src": "8556:11:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                6825,
                                                null,
                                                null
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "role",
                                                    "scope": 6994,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 6824,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8579:7:18"
                                                    }
                                                ],
                                                "id": 6825,
                                                "name": "VariableDeclaration",
                                                "src": "8579:12:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple(bytes32,bytes32,bytes32)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getRole",
                                                            "referencedDeclaration": 12315,
                                                            "type": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6410,
                                                                    "type": "contract VerifiedClient",
                                                                    "value": "client"
                                                                },
                                                                "id": 6826,
                                                                "name": "Identifier",
                                                                "src": "8599:6:18"
                                                            }
                                                        ],
                                                        "id": 6827,
                                                        "name": "MemberAccess",
                                                        "src": "8599:14:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -15,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 6828,
                                                                "name": "Identifier",
                                                                "src": "8614:3:18"
                                                            }
                                                        ],
                                                        "id": 6829,
                                                        "name": "MemberAccess",
                                                        "src": "8614:10:18"
                                                    }
                                                ],
                                                "id": 6830,
                                                "name": "FunctionCall",
                                                "src": "8599:26:18"
                                            }
                                        ],
                                        "id": 6831,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8578:47:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_b89edf027d3d1129b9f2c8dcd2ba89ffc6487f04ca050032214e13175a19a74a",
                                                                    "typeString": "literal_string \"Unauthorized access\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 6832,
                                                        "name": "Identifier",
                                                        "src": "8636:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "checkProduct",
                                                                                    "referencedDeclaration": 11055,
                                                                                    "type": "function (address) view external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6408,
                                                                                            "type": "contract IFactory",
                                                                                            "value": "products"
                                                                                        },
                                                                                        "id": 6833,
                                                                                        "name": "Identifier",
                                                                                        "src": "8644:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6834,
                                                                                "name": "MemberAccess",
                                                                                "src": "8644:21:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6796,
                                                                                    "type": "address",
                                                                                    "value": "owned"
                                                                                },
                                                                                "id": 6835,
                                                                                "name": "Identifier",
                                                                                "src": "8666:5:18"
                                                                            }
                                                                        ],
                                                                        "id": 6836,
                                                                        "name": "FunctionCall",
                                                                        "src": "8644:28:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "74727565",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "true"
                                                                        },
                                                                        "id": 6837,
                                                                        "name": "Literal",
                                                                        "src": "8674:4:18"
                                                                    }
                                                                ],
                                                                "id": 6838,
                                                                "name": "BinaryOperation",
                                                                "src": "8644:34:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6825,
                                                                            "type": "bytes32",
                                                                            "value": "role"
                                                                        },
                                                                        "id": 6839,
                                                                        "name": "Identifier",
                                                                        "src": "8682:4:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "414d",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"AM\"",
                                                                            "value": "AM"
                                                                        },
                                                                        "id": 6840,
                                                                        "name": "Literal",
                                                                        "src": "8688:4:18"
                                                                    }
                                                                ],
                                                                "id": 6841,
                                                                "name": "BinaryOperation",
                                                                "src": "8682:10:18"
                                                            }
                                                        ],
                                                        "id": 6842,
                                                        "name": "BinaryOperation",
                                                        "src": "8644:48:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "556e617574686f72697a656420616363657373",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Unauthorized access\"",
                                                            "value": "Unauthorized access"
                                                        },
                                                        "id": 6843,
                                                        "name": "Literal",
                                                        "src": "8694:21:18"
                                                    }
                                                ],
                                                "id": 6844,
                                                "name": "FunctionCall",
                                                "src": "8636:80:18"
                                            }
                                        ],
                                        "id": 6845,
                                        "name": "ExpressionStatement",
                                        "src": "8636:80:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6825,
                                                            "type": "bytes32",
                                                            "value": "role"
                                                        },
                                                        "id": 6846,
                                                        "name": "Identifier",
                                                        "src": "8730:4:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "414d",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"AM\"",
                                                            "value": "AM"
                                                        },
                                                        "id": 6847,
                                                        "name": "Literal",
                                                        "src": "8736:4:18"
                                                    }
                                                ],
                                                "id": 6848,
                                                "name": "BinaryOperation",
                                                "src": "8730:10:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "&&",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": ">=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "balanceOf",
                                                                                            "referencedDeclaration": 2483,
                                                                                            "type": "function (address) view external returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "contract ERC20",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2860,
                                                                                                            "type": "type(contract ERC20)",
                                                                                                            "value": "ERC20"
                                                                                                        },
                                                                                                        "id": 6849,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8759:5:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6796,
                                                                                                            "type": "address",
                                                                                                            "value": "owned"
                                                                                                        },
                                                                                                        "id": 6850,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8765:5:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6851,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "8759:12:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6852,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "8759:22:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "address",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                                            "typeString": "contract PrimaryIssueManager"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "type(address)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "name": "address"
                                                                                                        },
                                                                                                        "id": 6853,
                                                                                                        "name": "ElementaryTypeName",
                                                                                                        "src": "8782:7:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6854,
                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                "src": "8782:7:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": -28,
                                                                                                    "type": "contract PrimaryIssueManager",
                                                                                                    "value": "this"
                                                                                                },
                                                                                                "id": 6855,
                                                                                                "name": "Identifier",
                                                                                                "src": "8790:4:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6856,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "8782:13:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6857,
                                                                                "name": "FunctionCall",
                                                                                "src": "8759:37:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6598,
                                                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                                                    "value": "LPTokenAllotted"
                                                                                                },
                                                                                                "id": 6858,
                                                                                                "name": "Identifier",
                                                                                                "src": "8798:15:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sender",
                                                                                                    "type": "address payable"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": -15,
                                                                                                            "type": "msg",
                                                                                                            "value": "msg"
                                                                                                        },
                                                                                                        "id": 6859,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8814:3:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6860,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "8814:10:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6861,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "8798:27:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6796,
                                                                                            "type": "address",
                                                                                            "value": "owned"
                                                                                        },
                                                                                        "id": 6862,
                                                                                        "name": "Identifier",
                                                                                        "src": "8826:5:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6863,
                                                                                "name": "IndexAccess",
                                                                                "src": "8798:34:18"
                                                                            }
                                                                        ],
                                                                        "id": 6864,
                                                                        "name": "BinaryOperation",
                                                                        "src": "8759:73:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": ">=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6598,
                                                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                                                    "value": "LPTokenAllotted"
                                                                                                },
                                                                                                "id": 6865,
                                                                                                "name": "Identifier",
                                                                                                "src": "8836:15:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sender",
                                                                                                    "type": "address payable"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": -15,
                                                                                                            "type": "msg",
                                                                                                            "value": "msg"
                                                                                                        },
                                                                                                        "id": 6866,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8852:3:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6867,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "8852:10:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6868,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "8836:27:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6796,
                                                                                            "type": "address",
                                                                                            "value": "owned"
                                                                                        },
                                                                                        "id": 6869,
                                                                                        "name": "Identifier",
                                                                                        "src": "8864:5:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6870,
                                                                                "name": "IndexAccess",
                                                                                "src": "8836:34:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6800,
                                                                                    "type": "uint256",
                                                                                    "value": "offered"
                                                                                },
                                                                                "id": 6871,
                                                                                "name": "Identifier",
                                                                                "src": "8872:7:18"
                                                                            }
                                                                        ],
                                                                        "id": 6872,
                                                                        "name": "BinaryOperation",
                                                                        "src": "8836:43:18"
                                                                    }
                                                                ],
                                                                "id": 6873,
                                                                "name": "BinaryOperation",
                                                                "src": "8759:120:18"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6598,
                                                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                                                            "value": "LPTokenAllotted"
                                                                                                        },
                                                                                                        "id": 6874,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8916:15:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "sender",
                                                                                                            "type": "address payable"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": -15,
                                                                                                                    "type": "msg",
                                                                                                                    "value": "msg"
                                                                                                                },
                                                                                                                "id": 6875,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "8932:3:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 6876,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "8932:10:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6878,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "8916:27:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6796,
                                                                                                    "type": "address",
                                                                                                    "value": "owned"
                                                                                                },
                                                                                                "id": 6877,
                                                                                                "name": "Identifier",
                                                                                                "src": "8944:5:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6879,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "8916:34:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sub",
                                                                                                    "referencedDeclaration": 3094,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 3123,
                                                                                                            "type": "type(library SafeMath)",
                                                                                                            "value": "SafeMath"
                                                                                                        },
                                                                                                        "id": 6880,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8953:8:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6881,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "8953:12:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(address => uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 6598,
                                                                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                                                                    "value": "LPTokenAllotted"
                                                                                                                },
                                                                                                                "id": 6882,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "8966:15:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "sender",
                                                                                                                    "type": "address payable"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": -15,
                                                                                                                            "type": "msg",
                                                                                                                            "value": "msg"
                                                                                                                        },
                                                                                                                        "id": 6883,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "8982:3:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 6884,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "8982:10:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 6885,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "8966:27:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6796,
                                                                                                            "type": "address",
                                                                                                            "value": "owned"
                                                                                                        },
                                                                                                        "id": 6886,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "8994:5:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6887,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "8966:34:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6800,
                                                                                                    "type": "uint256",
                                                                                                    "value": "offered"
                                                                                                },
                                                                                                "id": 6888,
                                                                                                "name": "Identifier",
                                                                                                "src": "9002:7:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6889,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "8953:57:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6890,
                                                                                "name": "Assignment",
                                                                                "src": "8916:94:18"
                                                                            }
                                                                        ],
                                                                        "id": 6891,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "8916:94:18"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "tuple()",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                    "typeString": "address payable"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                                                    "typeString": "string memory"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7082,
                                                                                            "type": "function (address,address,bytes32,uint256,address,uint256,uint256,string memory)",
                                                                                            "value": "make"
                                                                                        },
                                                                                        "id": 6892,
                                                                                        "name": "Identifier",
                                                                                        "src": "9029:4:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "sender",
                                                                                            "type": "address payable"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": -15,
                                                                                                    "type": "msg",
                                                                                                    "value": "msg"
                                                                                                },
                                                                                                "id": 6893,
                                                                                                "name": "Identifier",
                                                                                                "src": "9034:3:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6894,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "9034:10:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6796,
                                                                                            "type": "address",
                                                                                            "value": "owned"
                                                                                        },
                                                                                        "id": 6895,
                                                                                        "name": "Identifier",
                                                                                        "src": "9046:5:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6798,
                                                                                            "type": "bytes32",
                                                                                            "value": "isin"
                                                                                        },
                                                                                        "id": 6896,
                                                                                        "name": "Identifier",
                                                                                        "src": "9053:4:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6800,
                                                                                            "type": "uint256",
                                                                                            "value": "offered"
                                                                                        },
                                                                                        "id": 6897,
                                                                                        "name": "Identifier",
                                                                                        "src": "9059:7:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6802,
                                                                                            "type": "address",
                                                                                            "value": "tomatch"
                                                                                        },
                                                                                        "id": 6898,
                                                                                        "name": "Identifier",
                                                                                        "src": "9068:7:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6804,
                                                                                            "type": "uint256",
                                                                                            "value": "desired"
                                                                                        },
                                                                                        "id": 6899,
                                                                                        "name": "Identifier",
                                                                                        "src": "9077:7:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6806,
                                                                                            "type": "uint256",
                                                                                            "value": "min"
                                                                                        },
                                                                                        "id": 6900,
                                                                                        "name": "Identifier",
                                                                                        "src": "9086:3:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6810,
                                                                                            "type": "string memory",
                                                                                            "value": "docs"
                                                                                        },
                                                                                        "id": 6901,
                                                                                        "name": "Identifier",
                                                                                        "src": "9091:4:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6902,
                                                                                "name": "FunctionCall",
                                                                                "src": "9029:67:18"
                                                                            }
                                                                        ],
                                                                        "id": 6903,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "9029:67:18"
                                                                    }
                                                                ],
                                                                "id": 6904,
                                                                "name": "Block",
                                                                "src": "8880:233:18"
                                                            },
                                                            {
                                                                "attributes": {},
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": ">=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                    "typeString": "address payable"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "balanceOf",
                                                                                            "referencedDeclaration": 2483,
                                                                                            "type": "function (address) view external returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "contract ERC20",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2860,
                                                                                                            "type": "type(contract ERC20)",
                                                                                                            "value": "ERC20"
                                                                                                        },
                                                                                                        "id": 6905,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9135:5:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6796,
                                                                                                            "type": "address",
                                                                                                            "value": "owned"
                                                                                                        },
                                                                                                        "id": 6906,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9141:5:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6907,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "9135:12:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6908,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "9135:22:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "sender",
                                                                                            "type": "address payable"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": -15,
                                                                                                    "type": "msg",
                                                                                                    "value": "msg"
                                                                                                },
                                                                                                "id": 6909,
                                                                                                "name": "Identifier",
                                                                                                "src": "9158:3:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6910,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "9158:10:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6911,
                                                                                "name": "FunctionCall",
                                                                                "src": "9135:34:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6800,
                                                                                    "type": "uint256",
                                                                                    "value": "offered"
                                                                                },
                                                                                "id": 6912,
                                                                                "name": "Identifier",
                                                                                "src": "9171:7:18"
                                                                            }
                                                                        ],
                                                                        "id": 6913,
                                                                        "name": "BinaryOperation",
                                                                        "src": "9135:43:18"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "bool",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address_payable",
                                                                                                            "typeString": "address payable"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "transferFrom",
                                                                                                    "referencedDeclaration": 2582,
                                                                                                    "type": "function (address,address,uint256) external returns (bool)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "tryCall": false,
                                                                                                            "type": "contract ERC20",
                                                                                                            "type_conversion": true
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2860,
                                                                                                                    "type": "type(contract ERC20)",
                                                                                                                    "value": "ERC20"
                                                                                                                },
                                                                                                                "id": 6914,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9198:5:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 6796,
                                                                                                                    "type": "address",
                                                                                                                    "value": "owned"
                                                                                                                },
                                                                                                                "id": 6915,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "9204:5:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 6916,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "9198:12:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6917,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "9198:25:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sender",
                                                                                                    "type": "address payable"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": -15,
                                                                                                            "type": "msg",
                                                                                                            "value": "msg"
                                                                                                        },
                                                                                                        "id": 6918,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9224:3:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6919,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "9224:10:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "address",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                                                    "typeString": "contract PrimaryIssueManager"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "type(address)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "name": "address"
                                                                                                                },
                                                                                                                "id": 6920,
                                                                                                                "name": "ElementaryTypeName",
                                                                                                                "src": "9236:7:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 6921,
                                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                                        "src": "9236:7:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": -28,
                                                                                                            "type": "contract PrimaryIssueManager",
                                                                                                            "value": "this"
                                                                                                        },
                                                                                                        "id": 6922,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9244:4:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6923,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "9236:13:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6800,
                                                                                                    "type": "uint256",
                                                                                                    "value": "offered"
                                                                                                },
                                                                                                "id": 6924,
                                                                                                "name": "Identifier",
                                                                                                "src": "9251:7:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6925,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "9198:61:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6926,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "9198:61:18"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "tuple()",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address_payable",
                                                                                                            "typeString": "address payable"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                                                            "typeString": "string memory"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7082,
                                                                                                    "type": "function (address,address,bytes32,uint256,address,uint256,uint256,string memory)",
                                                                                                    "value": "make"
                                                                                                },
                                                                                                "id": 6927,
                                                                                                "name": "Identifier",
                                                                                                "src": "9278:4:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sender",
                                                                                                    "type": "address payable"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": -15,
                                                                                                            "type": "msg",
                                                                                                            "value": "msg"
                                                                                                        },
                                                                                                        "id": 6928,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "9283:3:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 6929,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "9283:10:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6796,
                                                                                                    "type": "address",
                                                                                                    "value": "owned"
                                                                                                },
                                                                                                "id": 6930,
                                                                                                "name": "Identifier",
                                                                                                "src": "9295:5:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6798,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "isin"
                                                                                                },
                                                                                                "id": 6931,
                                                                                                "name": "Identifier",
                                                                                                "src": "9302:4:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6800,
                                                                                                    "type": "uint256",
                                                                                                    "value": "offered"
                                                                                                },
                                                                                                "id": 6932,
                                                                                                "name": "Identifier",
                                                                                                "src": "9308:7:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6802,
                                                                                                    "type": "address",
                                                                                                    "value": "tomatch"
                                                                                                },
                                                                                                "id": 6933,
                                                                                                "name": "Identifier",
                                                                                                "src": "9317:7:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6804,
                                                                                                    "type": "uint256",
                                                                                                    "value": "desired"
                                                                                                },
                                                                                                "id": 6934,
                                                                                                "name": "Identifier",
                                                                                                "src": "9326:7:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6806,
                                                                                                    "type": "uint256",
                                                                                                    "value": "min"
                                                                                                },
                                                                                                "id": 6935,
                                                                                                "name": "Identifier",
                                                                                                "src": "9335:3:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6810,
                                                                                                    "type": "string memory",
                                                                                                    "value": "docs"
                                                                                                },
                                                                                                "id": 6936,
                                                                                                "name": "Identifier",
                                                                                                "src": "9340:4:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6937,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "9278:67:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6938,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "9278:67:18"
                                                                            }
                                                                        ],
                                                                        "id": 6939,
                                                                        "name": "Block",
                                                                        "src": "9179:182:18"
                                                                    }
                                                                ],
                                                                "id": 6940,
                                                                "name": "IfStatement",
                                                                "src": "9132:229:18"
                                                            }
                                                        ],
                                                        "id": 6941,
                                                        "name": "IfStatement",
                                                        "src": "8756:605:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                                    "typeString": "int_const 1000000000000000000"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                                    "typeString": "string memory"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6664,
                                                                            "type": "function (address,address,uint256,address,uint256,uint256,bytes32,uint256,string memory)",
                                                                            "value": "offers"
                                                                        },
                                                                        "id": 6942,
                                                                        "name": "Identifier",
                                                                        "src": "9380:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sender",
                                                                            "type": "address payable"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": -15,
                                                                                    "type": "msg",
                                                                                    "value": "msg"
                                                                                },
                                                                                "id": 6943,
                                                                                "name": "Identifier",
                                                                                "src": "9387:3:18"
                                                                            }
                                                                        ],
                                                                        "id": 6944,
                                                                        "name": "MemberAccess",
                                                                        "src": "9387:10:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6796,
                                                                            "type": "address",
                                                                            "value": "owned"
                                                                        },
                                                                        "id": 6945,
                                                                        "name": "Identifier",
                                                                        "src": "9399:5:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6800,
                                                                            "type": "uint256",
                                                                            "value": "offered"
                                                                        },
                                                                        "id": 6946,
                                                                        "name": "Identifier",
                                                                        "src": "9406:7:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6802,
                                                                            "type": "address",
                                                                            "value": "tomatch"
                                                                        },
                                                                        "id": 6947,
                                                                        "name": "Identifier",
                                                                        "src": "9415:7:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6804,
                                                                            "type": "uint256",
                                                                            "value": "desired"
                                                                        },
                                                                        "id": 6948,
                                                                        "name": "Identifier",
                                                                        "src": "9424:7:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6806,
                                                                            "type": "uint256",
                                                                            "value": "min"
                                                                        },
                                                                        "id": 6949,
                                                                        "name": "Identifier",
                                                                        "src": "9433:3:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6798,
                                                                            "type": "bytes32",
                                                                            "value": "isin"
                                                                        },
                                                                        "id": 6950,
                                                                        "name": "Identifier",
                                                                        "src": "9438:4:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "31653138",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 1000000000000000000",
                                                                            "value": "1e18"
                                                                        },
                                                                        "id": 6951,
                                                                        "name": "Literal",
                                                                        "src": "9444:4:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6810,
                                                                            "type": "string memory",
                                                                            "value": "docs"
                                                                        },
                                                                        "id": 6952,
                                                                        "name": "Identifier",
                                                                        "src": "9450:4:18"
                                                                    }
                                                                ],
                                                                "id": 6953,
                                                                "name": "FunctionCall",
                                                                "src": "9380:75:18"
                                                            }
                                                        ],
                                                        "id": 6954,
                                                        "name": "EmitStatement",
                                                        "src": "9375:80:18"
                                                    }
                                                ],
                                                "id": 6955,
                                                "name": "Block",
                                                "src": "8741:726:18"
                                            },
                                            {
                                                "attributes": {},
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "balanceOf",
                                                                            "referencedDeclaration": 2483,
                                                                            "type": "function (address) view external returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract ERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2860,
                                                                                            "type": "type(contract ERC20)",
                                                                                            "value": "ERC20"
                                                                                        },
                                                                                        "id": 6956,
                                                                                        "name": "Identifier",
                                                                                        "src": "9485:5:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6796,
                                                                                            "type": "address",
                                                                                            "value": "owned"
                                                                                        },
                                                                                        "id": 6957,
                                                                                        "name": "Identifier",
                                                                                        "src": "9491:5:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6958,
                                                                                "name": "FunctionCall",
                                                                                "src": "9485:12:18"
                                                                            }
                                                                        ],
                                                                        "id": 6959,
                                                                        "name": "MemberAccess",
                                                                        "src": "9485:22:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6808,
                                                                            "type": "address",
                                                                            "value": "owner"
                                                                        },
                                                                        "id": 6960,
                                                                        "name": "Identifier",
                                                                        "src": "9508:5:18"
                                                                    }
                                                                ],
                                                                "id": 6961,
                                                                "name": "FunctionCall",
                                                                "src": "9485:29:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6800,
                                                                    "type": "uint256",
                                                                    "value": "offered"
                                                                },
                                                                "id": 6962,
                                                                "name": "Identifier",
                                                                "src": "9516:7:18"
                                                            }
                                                        ],
                                                        "id": 6963,
                                                        "name": "BinaryOperation",
                                                        "src": "9485:38:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferFrom",
                                                                                    "referencedDeclaration": 2582,
                                                                                    "type": "function (address,address,uint256) external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract ERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2860,
                                                                                                    "type": "type(contract ERC20)",
                                                                                                    "value": "ERC20"
                                                                                                },
                                                                                                "id": 6964,
                                                                                                "name": "Identifier",
                                                                                                "src": "9552:5:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6796,
                                                                                                    "type": "address",
                                                                                                    "value": "owned"
                                                                                                },
                                                                                                "id": 6965,
                                                                                                "name": "Identifier",
                                                                                                "src": "9558:5:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6966,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "9552:12:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6967,
                                                                                "name": "MemberAccess",
                                                                                "src": "9552:25:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6808,
                                                                                    "type": "address",
                                                                                    "value": "owner"
                                                                                },
                                                                                "id": 6968,
                                                                                "name": "Identifier",
                                                                                "src": "9578:5:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "address",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                                    "typeString": "contract PrimaryIssueManager"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "name": "address"
                                                                                                },
                                                                                                "id": 6969,
                                                                                                "name": "ElementaryTypeName",
                                                                                                "src": "9585:7:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 6970,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "9585:7:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": -28,
                                                                                            "type": "contract PrimaryIssueManager",
                                                                                            "value": "this"
                                                                                        },
                                                                                        "id": 6971,
                                                                                        "name": "Identifier",
                                                                                        "src": "9593:4:18"
                                                                                    }
                                                                                ],
                                                                                "id": 6972,
                                                                                "name": "FunctionCall",
                                                                                "src": "9585:13:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6800,
                                                                                    "type": "uint256",
                                                                                    "value": "offered"
                                                                                },
                                                                                "id": 6973,
                                                                                "name": "Identifier",
                                                                                "src": "9600:7:18"
                                                                            }
                                                                        ],
                                                                        "id": 6974,
                                                                        "name": "FunctionCall",
                                                                        "src": "9552:56:18"
                                                                    }
                                                                ],
                                                                "id": 6975,
                                                                "name": "ExpressionStatement",
                                                                "src": "9552:56:18"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "tuple()",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_string_memory_ptr",
                                                                                            "typeString": "string memory"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7082,
                                                                                    "type": "function (address,address,bytes32,uint256,address,uint256,uint256,string memory)",
                                                                                    "value": "make"
                                                                                },
                                                                                "id": 6976,
                                                                                "name": "Identifier",
                                                                                "src": "9623:4:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6808,
                                                                                    "type": "address",
                                                                                    "value": "owner"
                                                                                },
                                                                                "id": 6977,
                                                                                "name": "Identifier",
                                                                                "src": "9628:5:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6796,
                                                                                    "type": "address",
                                                                                    "value": "owned"
                                                                                },
                                                                                "id": 6978,
                                                                                "name": "Identifier",
                                                                                "src": "9635:5:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6798,
                                                                                    "type": "bytes32",
                                                                                    "value": "isin"
                                                                                },
                                                                                "id": 6979,
                                                                                "name": "Identifier",
                                                                                "src": "9642:4:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6800,
                                                                                    "type": "uint256",
                                                                                    "value": "offered"
                                                                                },
                                                                                "id": 6980,
                                                                                "name": "Identifier",
                                                                                "src": "9648:7:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6802,
                                                                                    "type": "address",
                                                                                    "value": "tomatch"
                                                                                },
                                                                                "id": 6981,
                                                                                "name": "Identifier",
                                                                                "src": "9657:7:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6804,
                                                                                    "type": "uint256",
                                                                                    "value": "desired"
                                                                                },
                                                                                "id": 6982,
                                                                                "name": "Identifier",
                                                                                "src": "9666:7:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6806,
                                                                                    "type": "uint256",
                                                                                    "value": "min"
                                                                                },
                                                                                "id": 6983,
                                                                                "name": "Identifier",
                                                                                "src": "9675:3:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6810,
                                                                                    "type": "string memory",
                                                                                    "value": "docs"
                                                                                },
                                                                                "id": 6984,
                                                                                "name": "Identifier",
                                                                                "src": "9680:4:18"
                                                                            }
                                                                        ],
                                                                        "id": 6985,
                                                                        "name": "FunctionCall",
                                                                        "src": "9623:62:18"
                                                                    }
                                                                ],
                                                                "id": 6986,
                                                                "name": "ExpressionStatement",
                                                                "src": "9623:62:18"
                                                            }
                                                        ],
                                                        "id": 6987,
                                                        "name": "Block",
                                                        "src": "9524:174:18"
                                                    }
                                                ],
                                                "id": 6988,
                                                "name": "IfStatement",
                                                "src": "9482:216:18"
                                            }
                                        ],
                                        "id": 6989,
                                        "name": "IfStatement",
                                        "src": "8727:971:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6416,
                                                            "type": "bool",
                                                            "value": "lock"
                                                        },
                                                        "id": 6990,
                                                        "name": "Identifier",
                                                        "src": "9708:4:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 6991,
                                                        "name": "Literal",
                                                        "src": "9715:5:18"
                                                    }
                                                ],
                                                "id": 6992,
                                                "name": "Assignment",
                                                "src": "9708:12:18"
                                            }
                                        ],
                                        "id": 6993,
                                        "name": "ExpressionStatement",
                                        "src": "9708:12:18"
                                    }
                                ],
                                "id": 6994,
                                "name": "Block",
                                "src": "8503:1225:18"
                            }
                        ],
                        "id": 6995,
                        "name": "FunctionDefinition",
                        "src": "8351:1377:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "make",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_owner",
                                            "scope": 7082,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6996,
                                                "name": "ElementaryTypeName",
                                                "src": "9750:7:18"
                                            }
                                        ],
                                        "id": 6997,
                                        "name": "VariableDeclaration",
                                        "src": "9750:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "owned",
                                            "scope": 7082,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 6998,
                                                "name": "ElementaryTypeName",
                                                "src": "9766:7:18"
                                            }
                                        ],
                                        "id": 6999,
                                        "name": "VariableDeclaration",
                                        "src": "9766:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_isin",
                                            "scope": 7082,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 7000,
                                                "name": "ElementaryTypeName",
                                                "src": "9781:7:18"
                                            }
                                        ],
                                        "id": 7001,
                                        "name": "VariableDeclaration",
                                        "src": "9781:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_offered",
                                            "scope": 7082,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 7002,
                                                "name": "ElementaryTypeName",
                                                "src": "9796:4:18"
                                            }
                                        ],
                                        "id": 7003,
                                        "name": "VariableDeclaration",
                                        "src": "9796:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "tomatch",
                                            "scope": 7082,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7004,
                                                "name": "ElementaryTypeName",
                                                "src": "9811:7:18"
                                            }
                                        ],
                                        "id": 7005,
                                        "name": "VariableDeclaration",
                                        "src": "9811:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_desired",
                                            "scope": 7082,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 7006,
                                                "name": "ElementaryTypeName",
                                                "src": "9828:4:18"
                                            }
                                        ],
                                        "id": 7007,
                                        "name": "VariableDeclaration",
                                        "src": "9828:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_min",
                                            "scope": 7082,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint",
                                                    "type": "uint256"
                                                },
                                                "id": 7008,
                                                "name": "ElementaryTypeName",
                                                "src": "9843:4:18"
                                            }
                                        ],
                                        "id": 7009,
                                        "name": "VariableDeclaration",
                                        "src": "9843:9:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_docs",
                                            "scope": 7082,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "string",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "string",
                                                    "type": "string"
                                                },
                                                "id": 7010,
                                                "name": "ElementaryTypeName",
                                                "src": "9854:6:18"
                                            }
                                        ],
                                        "id": 7011,
                                        "name": "VariableDeclaration",
                                        "src": "9854:19:18"
                                    }
                                ],
                                "id": 7012,
                                "name": "ParameterList",
                                "src": "9749:125:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 7013,
                                "name": "ParameterList",
                                "src": "9883:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7017
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "t",
                                                    "scope": 7081,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "struct IMarketMaker.token",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IMarketMaker.token",
                                                            "referencedDeclaration": 11675,
                                                            "type": "struct IMarketMaker.token"
                                                        },
                                                        "id": 7016,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "9894:18:18"
                                                    }
                                                ],
                                                "id": 7017,
                                                "name": "VariableDeclaration",
                                                "src": "9894:27:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": true,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        "owner",
                                                        "offered",
                                                        "amountDesired",
                                                        "amountOffered",
                                                        "min",
                                                        "isin",
                                                        "minimumOrderSize",
                                                        "offeringdocs"
                                                    ],
                                                    "tryCall": false,
                                                    "type": "struct IMarketMaker.token memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_rational_1000000000000000000_by_1",
                                                                    "typeString": "int_const 1000000000000000000"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                    "typeString": "string memory"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "token",
                                                            "referencedDeclaration": 11675,
                                                            "type": "type(struct IMarketMaker.token storage pointer)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 11881,
                                                                    "type": "type(contract IMarketMaker)",
                                                                    "value": "IMarketMaker"
                                                                },
                                                                "id": 7018,
                                                                "name": "Identifier",
                                                                "src": "9924:12:18"
                                                            }
                                                        ],
                                                        "id": 7019,
                                                        "name": "MemberAccess",
                                                        "src": "9924:18:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6997,
                                                            "type": "address",
                                                            "value": "_owner"
                                                        },
                                                        "id": 7020,
                                                        "name": "Identifier",
                                                        "src": "9965:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6999,
                                                            "type": "address",
                                                            "value": "owned"
                                                        },
                                                        "id": 7021,
                                                        "name": "Identifier",
                                                        "src": "9995:5:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7007,
                                                            "type": "uint256",
                                                            "value": "_desired"
                                                        },
                                                        "id": 7022,
                                                        "name": "Identifier",
                                                        "src": "10030:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7003,
                                                            "type": "uint256",
                                                            "value": "_offered"
                                                        },
                                                        "id": 7023,
                                                        "name": "Identifier",
                                                        "src": "10068:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7009,
                                                            "type": "uint256",
                                                            "value": "_min"
                                                        },
                                                        "id": 7024,
                                                        "name": "Identifier",
                                                        "src": "10096:4:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7001,
                                                            "type": "bytes32",
                                                            "value": "_isin"
                                                        },
                                                        "id": 7025,
                                                        "name": "Identifier",
                                                        "src": "10121:5:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "31653138",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 1000000000000000000",
                                                            "value": "1e18"
                                                        },
                                                        "id": 7026,
                                                        "name": "Literal",
                                                        "src": "10159:4:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7011,
                                                            "type": "string memory",
                                                            "value": "_docs"
                                                        },
                                                        "id": 7027,
                                                        "name": "Identifier",
                                                        "src": "10192:5:18"
                                                    }
                                                ],
                                                "id": 7028,
                                                "name": "FunctionCall",
                                                "src": "9924:285:18"
                                            }
                                        ],
                                        "id": 7029,
                                        "name": "VariableDeclarationStatement",
                                        "src": "9894:315:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7031
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "index",
                                                    "scope": 7081,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 7030,
                                                        "name": "ElementaryTypeName",
                                                        "src": "10220:7:18"
                                                    }
                                                ],
                                                "id": 7031,
                                                "name": "VariableDeclaration",
                                                "src": "10220:13:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "length",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6531,
                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                            "value": "mmtokens"
                                                                        },
                                                                        "id": 7032,
                                                                        "name": "Identifier",
                                                                        "src": "10236:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6999,
                                                                            "type": "address",
                                                                            "value": "owned"
                                                                        },
                                                                        "id": 7033,
                                                                        "name": "Identifier",
                                                                        "src": "10245:5:18"
                                                                    }
                                                                ],
                                                                "id": 7034,
                                                                "name": "IndexAccess",
                                                                "src": "10236:15:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7005,
                                                                    "type": "address",
                                                                    "value": "tomatch"
                                                                },
                                                                "id": 7035,
                                                                "name": "Identifier",
                                                                "src": "10252:7:18"
                                                            }
                                                        ],
                                                        "id": 7036,
                                                        "name": "IndexAccess",
                                                        "src": "10236:24:18"
                                                    }
                                                ],
                                                "id": 7037,
                                                "name": "MemberAccess",
                                                "src": "10236:31:18"
                                            }
                                        ],
                                        "id": 7038,
                                        "name": "VariableDeclarationStatement",
                                        "src": "10220:47:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_struct$_token_$11675_memory_ptr",
                                                                    "typeString": "struct IMarketMaker.token memory"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "push",
                                                            "type": "function (struct IMarketMaker.token storage ref)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6531,
                                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                    "value": "mmtokens"
                                                                                },
                                                                                "id": 7039,
                                                                                "name": "Identifier",
                                                                                "src": "10278:8:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6999,
                                                                                    "type": "address",
                                                                                    "value": "owned"
                                                                                },
                                                                                "id": 7040,
                                                                                "name": "Identifier",
                                                                                "src": "10287:5:18"
                                                                            }
                                                                        ],
                                                                        "id": 7042,
                                                                        "name": "IndexAccess",
                                                                        "src": "10278:15:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7005,
                                                                            "type": "address",
                                                                            "value": "tomatch"
                                                                        },
                                                                        "id": 7041,
                                                                        "name": "Identifier",
                                                                        "src": "10294:7:18"
                                                                    }
                                                                ],
                                                                "id": 7043,
                                                                "name": "IndexAccess",
                                                                "src": "10278:24:18"
                                                            }
                                                        ],
                                                        "id": 7044,
                                                        "name": "MemberAccess",
                                                        "src": "10278:29:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7017,
                                                            "type": "struct IMarketMaker.token memory",
                                                            "value": "t"
                                                        },
                                                        "id": 7045,
                                                        "name": "Identifier",
                                                        "src": "10308:1:18"
                                                    }
                                                ],
                                                "id": 7046,
                                                "name": "FunctionCall",
                                                "src": "10278:32:18"
                                            }
                                        ],
                                        "id": 7047,
                                        "name": "ExpressionStatement",
                                        "src": "10278:32:18"
                                    },
                                    {
                                        "attributes": {},
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6519,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "offeredTokenIndex"
                                                                },
                                                                "id": 7048,
                                                                "name": "Identifier",
                                                                "src": "10332:17:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6999,
                                                                    "type": "address",
                                                                    "value": "owned"
                                                                },
                                                                "id": 7049,
                                                                "name": "Identifier",
                                                                "src": "10350:5:18"
                                                            }
                                                        ],
                                                        "id": 7050,
                                                        "name": "IndexAccess",
                                                        "src": "10332:24:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 7051,
                                                        "name": "Literal",
                                                        "src": "10358:1:18"
                                                    }
                                                ],
                                                "id": 7052,
                                                "name": "BinaryOperation",
                                                "src": "10332:27:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "type": "function (address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6515,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "offeredTokens"
                                                                                },
                                                                                "id": 7053,
                                                                                "name": "Identifier",
                                                                                "src": "10387:13:18"
                                                                            }
                                                                        ],
                                                                        "id": 7055,
                                                                        "name": "MemberAccess",
                                                                        "src": "10387:18:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6999,
                                                                            "type": "address",
                                                                            "value": "owned"
                                                                        },
                                                                        "id": 7056,
                                                                        "name": "Identifier",
                                                                        "src": "10406:5:18"
                                                                    }
                                                                ],
                                                                "id": 7057,
                                                                "name": "FunctionCall",
                                                                "src": "10387:25:18"
                                                            }
                                                        ],
                                                        "id": 7058,
                                                        "name": "ExpressionStatement",
                                                        "src": "10387:25:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6519,
                                                                                    "type": "mapping(address => uint256)",
                                                                                    "value": "offeredTokenIndex"
                                                                                },
                                                                                "id": 7059,
                                                                                "name": "Identifier",
                                                                                "src": "10427:17:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6999,
                                                                                    "type": "address",
                                                                                    "value": "owned"
                                                                                },
                                                                                "id": 7060,
                                                                                "name": "Identifier",
                                                                                "src": "10445:5:18"
                                                                            }
                                                                        ],
                                                                        "id": 7061,
                                                                        "name": "IndexAccess",
                                                                        "src": "10427:24:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6515,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "offeredTokens"
                                                                                },
                                                                                "id": 7062,
                                                                                "name": "Identifier",
                                                                                "src": "10454:13:18"
                                                                            }
                                                                        ],
                                                                        "id": 7063,
                                                                        "name": "MemberAccess",
                                                                        "src": "10454:20:18"
                                                                    }
                                                                ],
                                                                "id": 7064,
                                                                "name": "Assignment",
                                                                "src": "10427:47:18"
                                                            }
                                                        ],
                                                        "id": 7065,
                                                        "name": "ExpressionStatement",
                                                        "src": "10427:47:18"
                                                    }
                                                ],
                                                "id": 7066,
                                                "name": "Block",
                                                "src": "10360:126:18"
                                            }
                                        ],
                                        "id": 7067,
                                        "name": "IfStatement",
                                        "src": "10329:157:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_struct$_token_$11675_storage",
                                                                    "typeString": "struct IMarketMaker.token storage ref"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "push",
                                                            "type": "function (struct IMarketMaker.token storage ref)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6524,
                                                                            "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)",
                                                                            "value": "toMatchTokens"
                                                                        },
                                                                        "id": 7068,
                                                                        "name": "Identifier",
                                                                        "src": "10496:13:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7005,
                                                                            "type": "address",
                                                                            "value": "tomatch"
                                                                        },
                                                                        "id": 7069,
                                                                        "name": "Identifier",
                                                                        "src": "10510:7:18"
                                                                    }
                                                                ],
                                                                "id": 7070,
                                                                "name": "IndexAccess",
                                                                "src": "10496:22:18"
                                                            }
                                                        ],
                                                        "id": 7071,
                                                        "name": "MemberAccess",
                                                        "src": "10496:27:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct IMarketMaker.token storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6531,
                                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                    "value": "mmtokens"
                                                                                },
                                                                                "id": 7072,
                                                                                "name": "Identifier",
                                                                                "src": "10524:8:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6999,
                                                                                    "type": "address",
                                                                                    "value": "owned"
                                                                                },
                                                                                "id": 7073,
                                                                                "name": "Identifier",
                                                                                "src": "10533:5:18"
                                                                            }
                                                                        ],
                                                                        "id": 7074,
                                                                        "name": "IndexAccess",
                                                                        "src": "10524:15:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7005,
                                                                            "type": "address",
                                                                            "value": "tomatch"
                                                                        },
                                                                        "id": 7075,
                                                                        "name": "Identifier",
                                                                        "src": "10540:7:18"
                                                                    }
                                                                ],
                                                                "id": 7076,
                                                                "name": "IndexAccess",
                                                                "src": "10524:24:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7031,
                                                                    "type": "uint256",
                                                                    "value": "index"
                                                                },
                                                                "id": 7077,
                                                                "name": "Identifier",
                                                                "src": "10549:5:18"
                                                            }
                                                        ],
                                                        "id": 7078,
                                                        "name": "IndexAccess",
                                                        "src": "10524:31:18"
                                                    }
                                                ],
                                                "id": 7079,
                                                "name": "FunctionCall",
                                                "src": "10496:60:18"
                                            }
                                        ],
                                        "id": 7080,
                                        "name": "ExpressionStatement",
                                        "src": "10496:60:18"
                                    }
                                ],
                                "id": 7081,
                                "name": "Block",
                                "src": "9883:703:18"
                            }
                        ],
                        "id": 7082,
                        "name": "FunctionDefinition",
                        "src": "9736:850:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11744
                            ],
                            "functionSelector": "6c78c894",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setOfferTerms",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7092,
                                "name": "OverrideSpecifier",
                                "src": "10686:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "owner",
                                            "scope": 7131,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7083,
                                                "name": "ElementaryTypeName",
                                                "src": "10617:7:18"
                                            }
                                        ],
                                        "id": 7084,
                                        "name": "VariableDeclaration",
                                        "src": "10617:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "owned",
                                            "scope": 7131,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7085,
                                                "name": "ElementaryTypeName",
                                                "src": "10632:7:18"
                                            }
                                        ],
                                        "id": 7086,
                                        "name": "VariableDeclaration",
                                        "src": "10632:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "tomatch",
                                            "scope": 7131,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7087,
                                                "name": "ElementaryTypeName",
                                                "src": "10647:7:18"
                                            }
                                        ],
                                        "id": 7088,
                                        "name": "VariableDeclaration",
                                        "src": "10647:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "minOrderSize",
                                            "scope": 7131,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7089,
                                                "name": "ElementaryTypeName",
                                                "src": "10664:7:18"
                                            }
                                        ],
                                        "id": 7090,
                                        "name": "VariableDeclaration",
                                        "src": "10664:20:18"
                                    }
                                ],
                                "id": 7091,
                                "name": "ParameterList",
                                "src": "10616:69:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 7098,
                                "name": "ParameterList",
                                "src": "10740:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6512,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 7093,
                                        "name": "Identifier",
                                        "src": "10704:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 7094,
                                                "name": "Identifier",
                                                "src": "10721:3:18"
                                            }
                                        ],
                                        "id": 7095,
                                        "name": "MemberAccess",
                                        "src": "10721:10:18"
                                    },
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 7086,
                                            "type": "address",
                                            "value": "owned"
                                        },
                                        "id": 7096,
                                        "name": "Identifier",
                                        "src": "10733:5:18"
                                    }
                                ],
                                "id": 7097,
                                "name": "ModifierInvocation",
                                "src": "10704:35:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7102
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "t",
                                                    "scope": 7130,
                                                    "stateVariable": false,
                                                    "storageLocation": "storage",
                                                    "type": "struct IMarketMaker.token",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IMarketMaker.token",
                                                            "referencedDeclaration": 11675,
                                                            "type": "struct IMarketMaker.token"
                                                        },
                                                        "id": 7101,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "10751:18:18"
                                                    }
                                                ],
                                                "id": 7102,
                                                "name": "VariableDeclaration",
                                                "src": "10751:28:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct IMarketMaker.token storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6531,
                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                            "value": "mmtokens"
                                                                        },
                                                                        "id": 7103,
                                                                        "name": "Identifier",
                                                                        "src": "10782:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7086,
                                                                            "type": "address",
                                                                            "value": "owned"
                                                                        },
                                                                        "id": 7104,
                                                                        "name": "Identifier",
                                                                        "src": "10791:5:18"
                                                                    }
                                                                ],
                                                                "id": 7105,
                                                                "name": "IndexAccess",
                                                                "src": "10782:15:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7088,
                                                                    "type": "address",
                                                                    "value": "tomatch"
                                                                },
                                                                "id": 7106,
                                                                "name": "Identifier",
                                                                "src": "10798:7:18"
                                                            }
                                                        ],
                                                        "id": 7107,
                                                        "name": "IndexAccess",
                                                        "src": "10782:24:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 7108,
                                                        "name": "Literal",
                                                        "src": "10807:1:18"
                                                    }
                                                ],
                                                "id": 7109,
                                                "name": "IndexAccess",
                                                "src": "10782:27:18"
                                            }
                                        ],
                                        "id": 7110,
                                        "name": "VariableDeclarationStatement",
                                        "src": "10751:58:18"
                                    },
                                    {
                                        "attributes": {},
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "owner",
                                                            "referencedDeclaration": 11660,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7102,
                                                                    "type": "struct IMarketMaker.token storage pointer",
                                                                    "value": "t"
                                                                },
                                                                "id": 7111,
                                                                "name": "Identifier",
                                                                "src": "10823:1:18"
                                                            }
                                                        ],
                                                        "id": 7112,
                                                        "name": "MemberAccess",
                                                        "src": "10823:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7084,
                                                            "type": "address",
                                                            "value": "owner"
                                                        },
                                                        "id": 7113,
                                                        "name": "Identifier",
                                                        "src": "10832:5:18"
                                                    }
                                                ],
                                                "id": 7114,
                                                "name": "BinaryOperation",
                                                "src": "10823:14:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "minimumOrderSize",
                                                                            "referencedDeclaration": 11672,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7102,
                                                                                    "type": "struct IMarketMaker.token storage pointer",
                                                                                    "value": "t"
                                                                                },
                                                                                "id": 7115,
                                                                                "name": "Identifier",
                                                                                "src": "10853:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 7117,
                                                                        "name": "MemberAccess",
                                                                        "src": "10853:18:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9282,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                    "value": "_upscale"
                                                                                },
                                                                                "id": 7118,
                                                                                "name": "Identifier",
                                                                                "src": "10874:8:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7090,
                                                                                    "type": "uint256",
                                                                                    "value": "minOrderSize"
                                                                                },
                                                                                "id": 7119,
                                                                                "name": "Identifier",
                                                                                "src": "10883:12:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                    "typeString": "contract IERC20"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9248,
                                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                                            "value": "_computeScalingFactor"
                                                                                        },
                                                                                        "id": 7120,
                                                                                        "name": "Identifier",
                                                                                        "src": "10897:21:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2938,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 7121,
                                                                                                "name": "Identifier",
                                                                                                "src": "10919:6:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7086,
                                                                                                    "type": "address",
                                                                                                    "value": "owned"
                                                                                                },
                                                                                                "id": 7122,
                                                                                                "name": "Identifier",
                                                                                                "src": "10926:5:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7123,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "10919:13:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7124,
                                                                                "name": "FunctionCall",
                                                                                "src": "10897:36:18"
                                                                            }
                                                                        ],
                                                                        "id": 7125,
                                                                        "name": "FunctionCall",
                                                                        "src": "10874:60:18"
                                                                    }
                                                                ],
                                                                "id": 7126,
                                                                "name": "Assignment",
                                                                "src": "10853:81:18"
                                                            }
                                                        ],
                                                        "id": 7127,
                                                        "name": "ExpressionStatement",
                                                        "src": "10853:81:18"
                                                    }
                                                ],
                                                "id": 7128,
                                                "name": "Block",
                                                "src": "10838:108:18"
                                            }
                                        ],
                                        "id": 7129,
                                        "name": "IfStatement",
                                        "src": "10820:126:18"
                                    }
                                ],
                                "id": 7130,
                                "name": "Block",
                                "src": "10740:213:18"
                            }
                        ],
                        "id": 7131,
                        "name": "FunctionDefinition",
                        "src": "10594:359:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11755
                            ],
                            "functionSelector": "b329620b",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setIssuingFee",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7141,
                                "name": "OverrideSpecifier",
                                "src": "11048:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "owner",
                                            "scope": 7174,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7132,
                                                "name": "ElementaryTypeName",
                                                "src": "10984:7:18"
                                            }
                                        ],
                                        "id": 7133,
                                        "name": "VariableDeclaration",
                                        "src": "10984:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "owned",
                                            "scope": 7174,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7134,
                                                "name": "ElementaryTypeName",
                                                "src": "10999:7:18"
                                            }
                                        ],
                                        "id": 7135,
                                        "name": "VariableDeclaration",
                                        "src": "10999:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "tomatch",
                                            "scope": 7174,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7136,
                                                "name": "ElementaryTypeName",
                                                "src": "11014:7:18"
                                            }
                                        ],
                                        "id": 7137,
                                        "name": "VariableDeclaration",
                                        "src": "11014:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "swapfee",
                                            "scope": 7174,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7138,
                                                "name": "ElementaryTypeName",
                                                "src": "11031:7:18"
                                            }
                                        ],
                                        "id": 7139,
                                        "name": "VariableDeclaration",
                                        "src": "11031:15:18"
                                    }
                                ],
                                "id": 7140,
                                "name": "ParameterList",
                                "src": "10983:64:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 7146,
                                "name": "ParameterList",
                                "src": "11084:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6490,
                                            "type": "modifier (address)",
                                            "value": "onlyDP"
                                        },
                                        "id": 7142,
                                        "name": "Identifier",
                                        "src": "11066:6:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 7143,
                                                "name": "Identifier",
                                                "src": "11073:3:18"
                                            }
                                        ],
                                        "id": 7144,
                                        "name": "MemberAccess",
                                        "src": "11073:10:18"
                                    }
                                ],
                                "id": 7145,
                                "name": "ModifierInvocation",
                                "src": "11066:18:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7150
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "t",
                                                    "scope": 7173,
                                                    "stateVariable": false,
                                                    "storageLocation": "storage",
                                                    "type": "struct IMarketMaker.token",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IMarketMaker.token",
                                                            "referencedDeclaration": 11675,
                                                            "type": "struct IMarketMaker.token"
                                                        },
                                                        "id": 7149,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "11095:18:18"
                                                    }
                                                ],
                                                "id": 7150,
                                                "name": "VariableDeclaration",
                                                "src": "11095:28:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct IMarketMaker.token storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6531,
                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                            "value": "mmtokens"
                                                                        },
                                                                        "id": 7151,
                                                                        "name": "Identifier",
                                                                        "src": "11126:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7135,
                                                                            "type": "address",
                                                                            "value": "owned"
                                                                        },
                                                                        "id": 7152,
                                                                        "name": "Identifier",
                                                                        "src": "11135:5:18"
                                                                    }
                                                                ],
                                                                "id": 7153,
                                                                "name": "IndexAccess",
                                                                "src": "11126:15:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7137,
                                                                    "type": "address",
                                                                    "value": "tomatch"
                                                                },
                                                                "id": 7154,
                                                                "name": "Identifier",
                                                                "src": "11142:7:18"
                                                            }
                                                        ],
                                                        "id": 7155,
                                                        "name": "IndexAccess",
                                                        "src": "11126:24:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 7156,
                                                        "name": "Literal",
                                                        "src": "11151:1:18"
                                                    }
                                                ],
                                                "id": 7157,
                                                "name": "IndexAccess",
                                                "src": "11126:27:18"
                                            }
                                        ],
                                        "id": 7158,
                                        "name": "VariableDeclarationStatement",
                                        "src": "11095:58:18"
                                    },
                                    {
                                        "attributes": {},
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "owner",
                                                            "referencedDeclaration": 11660,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7150,
                                                                    "type": "struct IMarketMaker.token storage pointer",
                                                                    "value": "t"
                                                                },
                                                                "id": 7159,
                                                                "name": "Identifier",
                                                                "src": "11167:1:18"
                                                            }
                                                        ],
                                                        "id": 7160,
                                                        "name": "MemberAccess",
                                                        "src": "11167:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7133,
                                                            "type": "address",
                                                            "value": "owner"
                                                        },
                                                        "id": 7161,
                                                        "name": "Identifier",
                                                        "src": "11176:5:18"
                                                    }
                                                ],
                                                "id": 7162,
                                                "name": "BinaryOperation",
                                                "src": "11167:14:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6608,
                                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                                            "value": "customFee"
                                                                                        },
                                                                                        "id": 7163,
                                                                                        "name": "Identifier",
                                                                                        "src": "11197:9:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7135,
                                                                                            "type": "address",
                                                                                            "value": "owned"
                                                                                        },
                                                                                        "id": 7164,
                                                                                        "name": "Identifier",
                                                                                        "src": "11207:5:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7166,
                                                                                "name": "IndexAccess",
                                                                                "src": "11197:16:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7137,
                                                                                    "type": "address",
                                                                                    "value": "tomatch"
                                                                                },
                                                                                "id": 7165,
                                                                                "name": "Identifier",
                                                                                "src": "11214:7:18"
                                                                            }
                                                                        ],
                                                                        "id": 7167,
                                                                        "name": "IndexAccess",
                                                                        "src": "11197:25:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7139,
                                                                            "type": "uint256",
                                                                            "value": "swapfee"
                                                                        },
                                                                        "id": 7168,
                                                                        "name": "Identifier",
                                                                        "src": "11223:7:18"
                                                                    }
                                                                ],
                                                                "id": 7169,
                                                                "name": "Assignment",
                                                                "src": "11197:33:18"
                                                            }
                                                        ],
                                                        "id": 7170,
                                                        "name": "ExpressionStatement",
                                                        "src": "11197:33:18"
                                                    }
                                                ],
                                                "id": 7171,
                                                "name": "Block",
                                                "src": "11182:60:18"
                                            }
                                        ],
                                        "id": 7172,
                                        "name": "IfStatement",
                                        "src": "11164:78:18"
                                    }
                                ],
                                "id": 7173,
                                "name": "Block",
                                "src": "11084:165:18"
                            }
                        ],
                        "id": 7174,
                        "name": "FunctionDefinition",
                        "src": "10961:288:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11764
                            ],
                            "functionSelector": "9f2a0ccc",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getIssuingFee",
                            "scope": 9283,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7180,
                                "name": "OverrideSpecifier",
                                "src": "11316:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 7191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7175,
                                                "name": "ElementaryTypeName",
                                                "src": "11280:7:18"
                                            }
                                        ],
                                        "id": 7176,
                                        "name": "VariableDeclaration",
                                        "src": "11280:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 7191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7177,
                                                "name": "ElementaryTypeName",
                                                "src": "11298:7:18"
                                            }
                                        ],
                                        "id": 7178,
                                        "name": "VariableDeclaration",
                                        "src": "11298:16:18"
                                    }
                                ],
                                "id": 7179,
                                "name": "ParameterList",
                                "src": "11279:36:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 7191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7181,
                                                "name": "ElementaryTypeName",
                                                "src": "11347:7:18"
                                            }
                                        ],
                                        "id": 7182,
                                        "name": "VariableDeclaration",
                                        "src": "11347:7:18"
                                    }
                                ],
                                "id": 7183,
                                "name": "ParameterList",
                                "src": "11346:9:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 7183
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(address => uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6608,
                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                    "value": "customFee"
                                                                },
                                                                "id": 7184,
                                                                "name": "Identifier",
                                                                "src": "11373:9:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7176,
                                                                    "type": "address",
                                                                    "value": "security"
                                                                },
                                                                "id": 7185,
                                                                "name": "Identifier",
                                                                "src": "11383:8:18"
                                                            }
                                                        ],
                                                        "id": 7186,
                                                        "name": "IndexAccess",
                                                        "src": "11373:19:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7178,
                                                            "type": "address",
                                                            "value": "currency"
                                                        },
                                                        "id": 7187,
                                                        "name": "Identifier",
                                                        "src": "11393:8:18"
                                                    }
                                                ],
                                                "id": 7188,
                                                "name": "IndexAccess",
                                                "src": "11373:29:18"
                                            }
                                        ],
                                        "id": 7189,
                                        "name": "Return",
                                        "src": "11366:36:18"
                                    }
                                ],
                                "id": 7190,
                                "name": "Block",
                                "src": "11355:55:18"
                            }
                        ],
                        "id": 7191,
                        "name": "FunctionDefinition",
                        "src": "11257:153:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11772
                            ],
                            "functionSelector": "9701bbc3",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "getOffered",
                            "scope": 9283,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Gets tokens to match for offered token\n@param  offered address of offered token"
                                },
                                "id": 7192,
                                "name": "StructuredDocumentation",
                                "src": "11418:110:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7196,
                                "name": "OverrideSpecifier",
                                "src": "11571:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "offered",
                                            "scope": 7210,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7193,
                                                "name": "ElementaryTypeName",
                                                "src": "11554:7:18"
                                            }
                                        ],
                                        "id": 7194,
                                        "name": "VariableDeclaration",
                                        "src": "11554:15:18"
                                    }
                                ],
                                "id": 7195,
                                "name": "ParameterList",
                                "src": "11553:17:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 7210,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "struct IMarketMaker.token[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "struct IMarketMaker.token[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IMarketMaker.token",
                                                            "referencedDeclaration": 11675,
                                                            "type": "struct IMarketMaker.token"
                                                        },
                                                        "id": 7201,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "11631:18:18"
                                                    }
                                                ],
                                                "id": 7202,
                                                "name": "ArrayTypeName",
                                                "src": "11631:20:18"
                                            }
                                        ],
                                        "id": 7203,
                                        "name": "VariableDeclaration",
                                        "src": "11631:27:18"
                                    }
                                ],
                                "id": 7204,
                                "name": "ParameterList",
                                "src": "11630:29:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6470,
                                            "type": "modifier (address)",
                                            "value": "onlyAssetManager"
                                        },
                                        "id": 7197,
                                        "name": "Identifier",
                                        "src": "11594:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 7198,
                                                "name": "Identifier",
                                                "src": "11611:3:18"
                                            }
                                        ],
                                        "id": 7199,
                                        "name": "MemberAccess",
                                        "src": "11611:10:18"
                                    }
                                ],
                                "id": 7200,
                                "name": "ModifierInvocation",
                                "src": "11594:28:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 7204
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6524,
                                                            "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)",
                                                            "value": "toMatchTokens"
                                                        },
                                                        "id": 7205,
                                                        "name": "Identifier",
                                                        "src": "11677:13:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7194,
                                                            "type": "address",
                                                            "value": "offered"
                                                        },
                                                        "id": 7206,
                                                        "name": "Identifier",
                                                        "src": "11691:7:18"
                                                    }
                                                ],
                                                "id": 7207,
                                                "name": "IndexAccess",
                                                "src": "11677:22:18"
                                            }
                                        ],
                                        "id": 7208,
                                        "name": "Return",
                                        "src": "11670:29:18"
                                    }
                                ],
                                "id": 7209,
                                "name": "Block",
                                "src": "11659:48:18"
                            }
                        ],
                        "id": 7210,
                        "name": "FunctionDefinition",
                        "src": "11534:173:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11868
                            ],
                            "functionSelector": "f7efef10",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "getOfferMade",
                            "scope": 9283,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Gets offer made previously\n@param  _owned      address of token offered\n@param  _tomatch    address of token to match"
                                },
                                "id": 7211,
                                "name": "StructuredDocumentation",
                                "src": "11715:157:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7217,
                                "name": "OverrideSpecifier",
                                "src": "11934:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_owned",
                                            "scope": 7233,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7212,
                                                "name": "ElementaryTypeName",
                                                "src": "11900:7:18"
                                            }
                                        ],
                                        "id": 7213,
                                        "name": "VariableDeclaration",
                                        "src": "11900:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_tomatch",
                                            "scope": 7233,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7214,
                                                "name": "ElementaryTypeName",
                                                "src": "11916:7:18"
                                            }
                                        ],
                                        "id": 7215,
                                        "name": "VariableDeclaration",
                                        "src": "11916:16:18"
                                    }
                                ],
                                "id": 7216,
                                "name": "ParameterList",
                                "src": "11899:34:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 7233,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "struct IMarketMaker.token[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "struct IMarketMaker.token[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IMarketMaker.token",
                                                            "referencedDeclaration": 11675,
                                                            "type": "struct IMarketMaker.token"
                                                        },
                                                        "id": 7222,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "11994:18:18"
                                                    }
                                                ],
                                                "id": 7223,
                                                "name": "ArrayTypeName",
                                                "src": "11994:20:18"
                                            }
                                        ],
                                        "id": 7224,
                                        "name": "VariableDeclaration",
                                        "src": "11994:27:18"
                                    }
                                ],
                                "id": 7225,
                                "name": "ParameterList",
                                "src": "11993:29:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6470,
                                            "type": "modifier (address)",
                                            "value": "onlyAssetManager"
                                        },
                                        "id": 7218,
                                        "name": "Identifier",
                                        "src": "11957:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 7219,
                                                "name": "Identifier",
                                                "src": "11974:3:18"
                                            }
                                        ],
                                        "id": 7220,
                                        "name": "MemberAccess",
                                        "src": "11974:10:18"
                                    }
                                ],
                                "id": 7221,
                                "name": "ModifierInvocation",
                                "src": "11957:28:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 7225
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6531,
                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                    "value": "mmtokens"
                                                                },
                                                                "id": 7226,
                                                                "name": "Identifier",
                                                                "src": "12040:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7213,
                                                                    "type": "address",
                                                                    "value": "_owned"
                                                                },
                                                                "id": 7227,
                                                                "name": "Identifier",
                                                                "src": "12049:6:18"
                                                            }
                                                        ],
                                                        "id": 7228,
                                                        "name": "IndexAccess",
                                                        "src": "12040:16:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7215,
                                                            "type": "address",
                                                            "value": "_tomatch"
                                                        },
                                                        "id": 7229,
                                                        "name": "Identifier",
                                                        "src": "12057:8:18"
                                                    }
                                                ],
                                                "id": 7230,
                                                "name": "IndexAccess",
                                                "src": "12040:26:18"
                                            }
                                        ],
                                        "id": 7231,
                                        "name": "Return",
                                        "src": "12033:33:18"
                                    }
                                ],
                                "id": 7232,
                                "name": "Block",
                                "src": "12022:52:18"
                            }
                        ],
                        "id": 7233,
                        "name": "FunctionDefinition",
                        "src": "11878:196:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11842
                            ],
                            "functionSelector": "88c4b6ee",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getLiquidityProviders",
                            "scope": 9283,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Fetches liquidity providers for a security token\n@param  _security   identifier for the security token offered"
                                },
                                "id": 7234,
                                "name": "StructuredDocumentation",
                                "src": "12082:141:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7238,
                                "name": "OverrideSpecifier",
                                "src": "12279:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_security",
                                            "scope": 7248,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7235,
                                                "name": "ElementaryTypeName",
                                                "src": "12260:7:18"
                                            }
                                        ],
                                        "id": 7236,
                                        "name": "VariableDeclaration",
                                        "src": "12260:17:18"
                                    }
                                ],
                                "id": 7237,
                                "name": "ParameterList",
                                "src": "12259:19:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 7248,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "struct IMarketMaker.lp[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "struct IMarketMaker.lp[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "lp",
                                                            "referencedDeclaration": 11695,
                                                            "type": "struct IMarketMaker.lp"
                                                        },
                                                        "id": 7239,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "12310:2:18"
                                                    }
                                                ],
                                                "id": 7240,
                                                "name": "ArrayTypeName",
                                                "src": "12310:4:18"
                                            }
                                        ],
                                        "id": 7241,
                                        "name": "VariableDeclaration",
                                        "src": "12310:11:18"
                                    }
                                ],
                                "id": 7242,
                                "name": "ParameterList",
                                "src": "12309:13:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 7242
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6553,
                                                            "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                            "value": "liquidityProviders"
                                                        },
                                                        "id": 7243,
                                                        "name": "Identifier",
                                                        "src": "12348:18:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7236,
                                                            "type": "address",
                                                            "value": "_security"
                                                        },
                                                        "id": 7244,
                                                        "name": "Identifier",
                                                        "src": "12367:9:18"
                                                    }
                                                ],
                                                "id": 7245,
                                                "name": "IndexAccess",
                                                "src": "12348:29:18"
                                            }
                                        ],
                                        "id": 7246,
                                        "name": "Return",
                                        "src": "12341:36:18"
                                    }
                                ],
                                "id": 7247,
                                "name": "Block",
                                "src": "12322:63:18"
                            }
                        ],
                        "id": 7248,
                        "name": "FunctionDefinition",
                        "src": "12229:156:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11851
                            ],
                            "functionSelector": "a7d545db",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "stake",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Called by Liquidity token contract to stake tokens by investors\n@param  _amount     amount of tokens staked to provide liquidity for underwriting investments in tokenized securities\n@param  _token      address of token staked\n@param  _manager    address of asset manager"
                                },
                                "id": 7249,
                                "name": "StructuredDocumentation",
                                "src": "12393:319:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7257,
                                "name": "OverrideSpecifier",
                                "src": "12784:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_amount",
                                            "scope": 7280,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7250,
                                                "name": "ElementaryTypeName",
                                                "src": "12733:7:18"
                                            }
                                        ],
                                        "id": 7251,
                                        "name": "VariableDeclaration",
                                        "src": "12733:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_token",
                                            "scope": 7280,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7252,
                                                "name": "ElementaryTypeName",
                                                "src": "12750:7:18"
                                            }
                                        ],
                                        "id": 7253,
                                        "name": "VariableDeclaration",
                                        "src": "12750:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_manager",
                                            "scope": 7280,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7254,
                                                "name": "ElementaryTypeName",
                                                "src": "12766:7:18"
                                            }
                                        ],
                                        "id": 7255,
                                        "name": "VariableDeclaration",
                                        "src": "12766:16:18"
                                    }
                                ],
                                "id": 7256,
                                "name": "ParameterList",
                                "src": "12732:51:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 7262,
                                "name": "ParameterList",
                                "src": "12821:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6446,
                                            "type": "modifier (address)",
                                            "value": "onlyLP"
                                        },
                                        "id": 7258,
                                        "name": "Identifier",
                                        "src": "12802:6:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 7259,
                                                "name": "Identifier",
                                                "src": "12809:3:18"
                                            }
                                        ],
                                        "id": 7260,
                                        "name": "MemberAccess",
                                        "src": "12809:10:18"
                                    }
                                ],
                                "id": 7261,
                                "name": "ModifierInvocation",
                                "src": "12802:18:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6598,
                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                            "value": "LPTokenAllotted"
                                                                        },
                                                                        "id": 7263,
                                                                        "name": "Identifier",
                                                                        "src": "12832:15:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7255,
                                                                            "type": "address",
                                                                            "value": "_manager"
                                                                        },
                                                                        "id": 7264,
                                                                        "name": "Identifier",
                                                                        "src": "12848:8:18"
                                                                    }
                                                                ],
                                                                "id": 7266,
                                                                "name": "IndexAccess",
                                                                "src": "12832:25:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7253,
                                                                    "type": "address",
                                                                    "value": "_token"
                                                                },
                                                                "id": 7265,
                                                                "name": "Identifier",
                                                                "src": "12858:6:18"
                                                            }
                                                        ],
                                                        "id": 7267,
                                                        "name": "IndexAccess",
                                                        "src": "12832:33:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "add",
                                                                    "referencedDeclaration": 3076,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3123,
                                                                            "type": "type(library SafeMath)",
                                                                            "value": "SafeMath"
                                                                        },
                                                                        "id": 7268,
                                                                        "name": "Identifier",
                                                                        "src": "12868:8:18"
                                                                    }
                                                                ],
                                                                "id": 7269,
                                                                "name": "MemberAccess",
                                                                "src": "12868:12:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6598,
                                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                                    "value": "LPTokenAllotted"
                                                                                },
                                                                                "id": 7270,
                                                                                "name": "Identifier",
                                                                                "src": "12881:15:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7255,
                                                                                    "type": "address",
                                                                                    "value": "_manager"
                                                                                },
                                                                                "id": 7271,
                                                                                "name": "Identifier",
                                                                                "src": "12897:8:18"
                                                                            }
                                                                        ],
                                                                        "id": 7272,
                                                                        "name": "IndexAccess",
                                                                        "src": "12881:25:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7253,
                                                                            "type": "address",
                                                                            "value": "_token"
                                                                        },
                                                                        "id": 7273,
                                                                        "name": "Identifier",
                                                                        "src": "12907:6:18"
                                                                    }
                                                                ],
                                                                "id": 7274,
                                                                "name": "IndexAccess",
                                                                "src": "12881:33:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7251,
                                                                    "type": "uint256",
                                                                    "value": "_amount"
                                                                },
                                                                "id": 7275,
                                                                "name": "Identifier",
                                                                "src": "12916:7:18"
                                                            }
                                                        ],
                                                        "id": 7276,
                                                        "name": "FunctionCall",
                                                        "src": "12868:56:18"
                                                    }
                                                ],
                                                "id": 7277,
                                                "name": "Assignment",
                                                "src": "12832:92:18"
                                            }
                                        ],
                                        "id": 7278,
                                        "name": "ExpressionStatement",
                                        "src": "12832:92:18"
                                    }
                                ],
                                "id": 7279,
                                "name": "Block",
                                "src": "12821:111:18"
                            }
                        ],
                        "id": 7280,
                        "name": "FunctionDefinition",
                        "src": "12718:214:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11858
                            ],
                            "functionSelector": "59d3b2cd",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getAllotedStake",
                            "scope": 9283,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Gets liquidity allotted for asset manager (message sender)\n@param  _token  address of token allocated earlier to asset manager (message sender)"
                                },
                                "id": 7281,
                                "name": "StructuredDocumentation",
                                "src": "12940:174:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7285,
                                "name": "OverrideSpecifier",
                                "src": "13161:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_token",
                                            "scope": 7297,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7282,
                                                "name": "ElementaryTypeName",
                                                "src": "13145:7:18"
                                            }
                                        ],
                                        "id": 7283,
                                        "name": "VariableDeclaration",
                                        "src": "13145:14:18"
                                    }
                                ],
                                "id": 7284,
                                "name": "ParameterList",
                                "src": "13144:16:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 7297,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7286,
                                                "name": "ElementaryTypeName",
                                                "src": "13192:7:18"
                                            }
                                        ],
                                        "id": 7287,
                                        "name": "VariableDeclaration",
                                        "src": "13192:7:18"
                                    }
                                ],
                                "id": 7288,
                                "name": "ParameterList",
                                "src": "13191:9:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 7288
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(address => uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6598,
                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                    "value": "LPTokenAllotted"
                                                                },
                                                                "id": 7289,
                                                                "name": "Identifier",
                                                                "src": "13218:15:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -15,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 7290,
                                                                        "name": "Identifier",
                                                                        "src": "13234:3:18"
                                                                    }
                                                                ],
                                                                "id": 7291,
                                                                "name": "MemberAccess",
                                                                "src": "13234:10:18"
                                                            }
                                                        ],
                                                        "id": 7292,
                                                        "name": "IndexAccess",
                                                        "src": "13218:27:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7283,
                                                            "type": "address",
                                                            "value": "_token"
                                                        },
                                                        "id": 7293,
                                                        "name": "Identifier",
                                                        "src": "13246:6:18"
                                                    }
                                                ],
                                                "id": 7294,
                                                "name": "IndexAccess",
                                                "src": "13218:35:18"
                                            }
                                        ],
                                        "id": 7295,
                                        "name": "Return",
                                        "src": "13211:42:18"
                                    }
                                ],
                                "id": 7296,
                                "name": "Block",
                                "src": "13200:61:18"
                            }
                        ],
                        "id": 7297,
                        "name": "FunctionDefinition",
                        "src": "13120:141:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11781
                            ],
                            "functionSelector": "6d78f47a",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "issue",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Called by issuer of 'security' token to open an issue which will last till 'cutoffTime'\n@param  security    security offered to the primary issue pool\n@param  cutoffTime  time in milliseconds by when offer closes"
                                },
                                "id": 7298,
                                "name": "StructuredDocumentation",
                                "src": "13277:252:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7306,
                                "name": "OverrideSpecifier",
                                "src": "13604:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 7319,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7299,
                                                "name": "ElementaryTypeName",
                                                "src": "13550:7:18"
                                            }
                                        ],
                                        "id": 7300,
                                        "name": "VariableDeclaration",
                                        "src": "13550:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "cutoffTime",
                                            "scope": 7319,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7301,
                                                "name": "ElementaryTypeName",
                                                "src": "13568:7:18"
                                            }
                                        ],
                                        "id": 7302,
                                        "name": "VariableDeclaration",
                                        "src": "13568:18:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "issuer",
                                            "scope": 7319,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7303,
                                                "name": "ElementaryTypeName",
                                                "src": "13588:7:18"
                                            }
                                        ],
                                        "id": 7304,
                                        "name": "VariableDeclaration",
                                        "src": "13588:14:18"
                                    }
                                ],
                                "id": 7305,
                                "name": "ParameterList",
                                "src": "13549:54:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 7311,
                                "name": "ParameterList",
                                "src": "13641:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6490,
                                            "type": "modifier (address)",
                                            "value": "onlyDP"
                                        },
                                        "id": 7307,
                                        "name": "Identifier",
                                        "src": "13622:6:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 7308,
                                                "name": "Identifier",
                                                "src": "13629:3:18"
                                            }
                                        ],
                                        "id": 7309,
                                        "name": "MemberAccess",
                                        "src": "13629:10:18"
                                    }
                                ],
                                "id": 7310,
                                "name": "ModifierInvocation",
                                "src": "13622:18:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7664,
                                                            "type": "function (address,uint256,address)",
                                                            "value": "onIssue"
                                                        },
                                                        "id": 7312,
                                                        "name": "Identifier",
                                                        "src": "13652:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7300,
                                                            "type": "address",
                                                            "value": "security"
                                                        },
                                                        "id": 7313,
                                                        "name": "Identifier",
                                                        "src": "13660:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7302,
                                                            "type": "uint256",
                                                            "value": "cutoffTime"
                                                        },
                                                        "id": 7314,
                                                        "name": "Identifier",
                                                        "src": "13670:10:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7304,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 7315,
                                                        "name": "Identifier",
                                                        "src": "13682:6:18"
                                                    }
                                                ],
                                                "id": 7316,
                                                "name": "FunctionCall",
                                                "src": "13652:37:18"
                                            }
                                        ],
                                        "id": 7317,
                                        "name": "ExpressionStatement",
                                        "src": "13652:37:18"
                                    }
                                ],
                                "id": 7318,
                                "name": "Block",
                                "src": "13641:56:18"
                            }
                        ],
                        "id": 7319,
                        "name": "FunctionDefinition",
                        "src": "13535:162:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "onIssue",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 7664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7320,
                                                "name": "ElementaryTypeName",
                                                "src": "13726:7:18"
                                            }
                                        ],
                                        "id": 7321,
                                        "name": "VariableDeclaration",
                                        "src": "13726:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "cutoffTime",
                                            "scope": 7664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7322,
                                                "name": "ElementaryTypeName",
                                                "src": "13744:7:18"
                                            }
                                        ],
                                        "id": 7323,
                                        "name": "VariableDeclaration",
                                        "src": "13744:18:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "issuer",
                                            "scope": 7664,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7324,
                                                "name": "ElementaryTypeName",
                                                "src": "13764:7:18"
                                            }
                                        ],
                                        "id": 7325,
                                        "name": "VariableDeclaration",
                                        "src": "13764:14:18"
                                    }
                                ],
                                "id": 7326,
                                "name": "ParameterList",
                                "src": "13725:54:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 7327,
                                "name": "ParameterList",
                                "src": "13788:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7329
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "marketmaker",
                                                    "scope": 7663,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 7328,
                                                        "name": "ElementaryTypeName",
                                                        "src": "13920:7:18"
                                                    }
                                                ],
                                                "id": 7329,
                                                "name": "VariableDeclaration",
                                                "src": "13920:19:18"
                                            }
                                        ],
                                        "id": 7330,
                                        "name": "VariableDeclarationStatement",
                                        "src": "13920:19:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7332
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "matchedTokens",
                                                    "scope": 7663,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 7331,
                                                        "name": "ElementaryTypeName",
                                                        "src": "13950:7:18"
                                                    }
                                                ],
                                                "id": 7332,
                                                "name": "VariableDeclaration",
                                                "src": "13950:21:18"
                                            }
                                        ],
                                        "id": 7333,
                                        "name": "VariableDeclarationStatement",
                                        "src": "13950:21:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7335
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "cash",
                                                    "scope": 7663,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 7334,
                                                        "name": "ElementaryTypeName",
                                                        "src": "13982:7:18"
                                                    }
                                                ],
                                                "id": 7335,
                                                "name": "VariableDeclaration",
                                                "src": "13982:12:18"
                                            }
                                        ],
                                        "id": 7336,
                                        "name": "VariableDeclarationStatement",
                                        "src": "13982:12:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7338
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "securityOffered",
                                                    "scope": 7663,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 7337,
                                                        "name": "ElementaryTypeName",
                                                        "src": "14005:7:18"
                                                    }
                                                ],
                                                "id": 7338,
                                                "name": "VariableDeclaration",
                                                "src": "14005:23:18"
                                            }
                                        ],
                                        "id": 7339,
                                        "name": "VariableDeclarationStatement",
                                        "src": "14005:23:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7341
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "minCashDesired",
                                                    "scope": 7663,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 7340,
                                                        "name": "ElementaryTypeName",
                                                        "src": "14039:7:18"
                                                    }
                                                ],
                                                "id": 7341,
                                                "name": "VariableDeclaration",
                                                "src": "14039:22:18"
                                            }
                                        ],
                                        "id": 7342,
                                        "name": "VariableDeclarationStatement",
                                        "src": "14039:22:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7344
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "cashOffered",
                                                    "scope": 7663,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 7343,
                                                        "name": "ElementaryTypeName",
                                                        "src": "14072:7:18"
                                                    }
                                                ],
                                                "id": 7344,
                                                "name": "VariableDeclaration",
                                                "src": "14072:19:18"
                                            }
                                        ],
                                        "id": 7345,
                                        "name": "VariableDeclarationStatement",
                                        "src": "14072:19:18"
                                    },
                                    {
                                        "attributes": {},
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6515,
                                                                    "type": "address[] storage ref",
                                                                    "value": "offeredTokens"
                                                                },
                                                                "id": 7346,
                                                                "name": "Identifier",
                                                                "src": "14107:13:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "-",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6519,
                                                                                    "type": "mapping(address => uint256)",
                                                                                    "value": "offeredTokenIndex"
                                                                                },
                                                                                "id": 7347,
                                                                                "name": "Identifier",
                                                                                "src": "14121:17:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7321,
                                                                                    "type": "address",
                                                                                    "value": "security"
                                                                                },
                                                                                "id": 7348,
                                                                                "name": "Identifier",
                                                                                "src": "14139:8:18"
                                                                            }
                                                                        ],
                                                                        "id": 7349,
                                                                        "name": "IndexAccess",
                                                                        "src": "14121:27:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "31",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 1",
                                                                            "value": "1"
                                                                        },
                                                                        "id": 7350,
                                                                        "name": "Literal",
                                                                        "src": "14149:1:18"
                                                                    }
                                                                ],
                                                                "id": 7351,
                                                                "name": "BinaryOperation",
                                                                "src": "14121:29:18"
                                                            }
                                                        ],
                                                        "id": 7352,
                                                        "name": "IndexAccess",
                                                        "src": "14107:44:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7321,
                                                            "type": "address",
                                                            "value": "security"
                                                        },
                                                        "id": 7353,
                                                        "name": "Identifier",
                                                        "src": "14153:8:18"
                                                    }
                                                ],
                                                "id": 7354,
                                                "name": "BinaryOperation",
                                                "src": "14107:54:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        7356
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "mutability": "mutable",
                                                                            "name": "j",
                                                                            "scope": 7642,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "uint256",
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "uint",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "id": 7355,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "14276:4:18"
                                                                            }
                                                                        ],
                                                                        "id": 7356,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "14276:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 7357,
                                                                        "name": "Literal",
                                                                        "src": "14283:1:18"
                                                                    }
                                                                ],
                                                                "id": 7358,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "14276:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "<",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7356,
                                                                            "type": "uint256",
                                                                            "value": "j"
                                                                        },
                                                                        "id": 7359,
                                                                        "name": "Identifier",
                                                                        "src": "14286:1:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6515,
                                                                                    "type": "address[] storage ref",
                                                                                    "value": "offeredTokens"
                                                                                },
                                                                                "id": 7360,
                                                                                "name": "Identifier",
                                                                                "src": "14288:13:18"
                                                                            }
                                                                        ],
                                                                        "id": 7361,
                                                                        "name": "MemberAccess",
                                                                        "src": "14288:20:18"
                                                                    }
                                                                ],
                                                                "id": 7362,
                                                                "name": "BinaryOperation",
                                                                "src": "14286:22:18"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "++",
                                                                            "prefix": false,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7356,
                                                                                    "type": "uint256",
                                                                                    "value": "j"
                                                                                },
                                                                                "id": 7363,
                                                                                "name": "Identifier",
                                                                                "src": "14310:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 7364,
                                                                        "name": "UnaryOperation",
                                                                        "src": "14310:3:18"
                                                                    }
                                                                ],
                                                                "id": 7365,
                                                                "name": "ExpressionStatement",
                                                                "src": "14310:3:18"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {},
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "!=",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6515,
                                                                                                    "type": "address[] storage ref",
                                                                                                    "value": "offeredTokens"
                                                                                                },
                                                                                                "id": 7366,
                                                                                                "name": "Identifier",
                                                                                                "src": "14354:13:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7356,
                                                                                                    "type": "uint256",
                                                                                                    "value": "j"
                                                                                                },
                                                                                                "id": 7367,
                                                                                                "name": "Identifier",
                                                                                                "src": "14368:1:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7368,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "14354:16:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7321,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7369,
                                                                                        "name": "Identifier",
                                                                                        "src": "14372:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7370,
                                                                                "name": "BinaryOperation",
                                                                                "src": "14354:26:18"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7335,
                                                                                                            "type": "address",
                                                                                                            "value": "cash"
                                                                                                        },
                                                                                                        "id": 7371,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14424:4:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 6515,
                                                                                                                    "type": "address[] storage ref",
                                                                                                                    "value": "offeredTokens"
                                                                                                                },
                                                                                                                "id": 7372,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14431:13:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 7356,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "j"
                                                                                                                },
                                                                                                                "id": 7373,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14445:1:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 7374,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "14431:16:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 7375,
                                                                                                "name": "Assignment",
                                                                                                "src": "14424:23:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7376,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "14424:23:18"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7332,
                                                                                                            "type": "uint256",
                                                                                                            "value": "matchedTokens"
                                                                                                        },
                                                                                                        "id": 7377,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14739:13:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "length",
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 6531,
                                                                                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                                                                    "value": "mmtokens"
                                                                                                                                },
                                                                                                                                "id": 7378,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "14755:8:18"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                    "type": "address",
                                                                                                                                    "value": "cash"
                                                                                                                                },
                                                                                                                                "id": 7379,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "14764:4:18"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 7380,
                                                                                                                        "name": "IndexAccess",
                                                                                                                        "src": "14755:14:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                            "type": "address",
                                                                                                                            "value": "security"
                                                                                                                        },
                                                                                                                        "id": 7381,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14770:8:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 7382,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "14755:24:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 7383,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "14755:31:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 7384,
                                                                                                "name": "Assignment",
                                                                                                "src": "14739:47:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7385,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "14739:47:18"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "assignments": [
                                                                                                        7387
                                                                                                    ]
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "constant": false,
                                                                                                            "mutability": "mutable",
                                                                                                            "name": "k",
                                                                                                            "scope": 7638,
                                                                                                            "stateVariable": false,
                                                                                                            "storageLocation": "default",
                                                                                                            "type": "uint256",
                                                                                                            "visibility": "internal"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "name": "uint",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "id": 7386,
                                                                                                                "name": "ElementaryTypeName",
                                                                                                                "src": "14817:4:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 7387,
                                                                                                        "name": "VariableDeclaration",
                                                                                                        "src": "14817:6:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "hexvalue": "30",
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": true,
                                                                                                            "lValueRequested": false,
                                                                                                            "token": "number",
                                                                                                            "type": "int_const 0",
                                                                                                            "value": "0"
                                                                                                        },
                                                                                                        "id": 7388,
                                                                                                        "name": "Literal",
                                                                                                        "src": "14824:1:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 7389,
                                                                                                "name": "VariableDeclarationStatement",
                                                                                                "src": "14817:8:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "<",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7387,
                                                                                                            "type": "uint256",
                                                                                                            "value": "k"
                                                                                                        },
                                                                                                        "id": 7390,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14827:1:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7332,
                                                                                                            "type": "uint256",
                                                                                                            "value": "matchedTokens"
                                                                                                        },
                                                                                                        "id": 7391,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14829:13:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 7392,
                                                                                                "name": "BinaryOperation",
                                                                                                "src": "14827:15:18"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "operator": "++",
                                                                                                            "prefix": false,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 7387,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "k"
                                                                                                                },
                                                                                                                "id": 7393,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14844:1:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 7394,
                                                                                                        "name": "UnaryOperation",
                                                                                                        "src": "14844:3:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 7395,
                                                                                                "name": "ExpressionStatement",
                                                                                                "src": "14844:3:18"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "=",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 7338,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "securityOffered"
                                                                                                                        },
                                                                                                                        "id": 7396,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14881:15:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "amountOffered",
                                                                                                                            "referencedDeclaration": 11664,
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "struct IMarketMaker.token storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 6531,
                                                                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                                                                                            "value": "mmtokens"
                                                                                                                                                        },
                                                                                                                                                        "id": 7397,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14899:8:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "security"
                                                                                                                                                        },
                                                                                                                                                        "id": 7398,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14908:8:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7399,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "14899:18:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "cash"
                                                                                                                                                },
                                                                                                                                                "id": 7400,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14918:4:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7401,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14899:24:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "hexvalue": "30",
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "token": "number",
                                                                                                                                            "type": "int_const 0",
                                                                                                                                            "value": "0"
                                                                                                                                        },
                                                                                                                                        "id": 7402,
                                                                                                                                        "name": "Literal",
                                                                                                                                        "src": "14924:1:18"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 7403,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "14899:27:18"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 7404,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "14899:41:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 7405,
                                                                                                                "name": "Assignment",
                                                                                                                "src": "14881:59:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 7406,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "14881:59:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "=",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 7341,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "minCashDesired"
                                                                                                                        },
                                                                                                                        "id": 7407,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14971:14:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "min",
                                                                                                                            "referencedDeclaration": 11668,
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "struct IMarketMaker.token storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 6531,
                                                                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                                                                                            "value": "mmtokens"
                                                                                                                                                        },
                                                                                                                                                        "id": 7408,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14988:8:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "security"
                                                                                                                                                        },
                                                                                                                                                        "id": 7409,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "14997:8:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7410,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "14988:18:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "cash"
                                                                                                                                                },
                                                                                                                                                "id": 7411,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15007:4:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7412,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14988:24:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "hexvalue": "30",
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": true,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "token": "number",
                                                                                                                                            "type": "int_const 0",
                                                                                                                                            "value": "0"
                                                                                                                                        },
                                                                                                                                        "id": 7413,
                                                                                                                                        "name": "Literal",
                                                                                                                                        "src": "15013:1:18"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 7414,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "14988:27:18"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 7415,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "14988:31:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 7416,
                                                                                                                "name": "Assignment",
                                                                                                                "src": "14971:48:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 7417,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "14971:48:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "=",
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 7344,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "cashOffered"
                                                                                                                        },
                                                                                                                        "id": 7418,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15050:11:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "amountOffered",
                                                                                                                            "referencedDeclaration": 11664,
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "struct IMarketMaker.token storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 6531,
                                                                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                                                                                            "value": "mmtokens"
                                                                                                                                                        },
                                                                                                                                                        "id": 7419,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15064:8:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "cash"
                                                                                                                                                        },
                                                                                                                                                        "id": 7420,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15073:4:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7421,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "15064:14:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 7321,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "security"
                                                                                                                                                },
                                                                                                                                                "id": 7422,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15079:8:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7423,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "15064:24:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 7387,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "k"
                                                                                                                                        },
                                                                                                                                        "id": 7424,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15089:1:18"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 7425,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "15064:27:18"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 7426,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "15064:41:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 7427,
                                                                                                                "name": "Assignment",
                                                                                                                "src": "15050:55:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 7428,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "15050:55:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "=",
                                                                                                                    "type": "address"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 7329,
                                                                                                                            "type": "address",
                                                                                                                            "value": "marketmaker"
                                                                                                                        },
                                                                                                                        "id": 7429,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15136:11:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": true,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "member_name": "owner",
                                                                                                                            "referencedDeclaration": 11660,
                                                                                                                            "type": "address"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "struct IMarketMaker.token storage ref"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 6531,
                                                                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                                                                                            "value": "mmtokens"
                                                                                                                                                        },
                                                                                                                                                        "id": 7430,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15150:8:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "cash"
                                                                                                                                                        },
                                                                                                                                                        "id": 7431,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15159:4:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7432,
                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                "src": "15150:14:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 7321,
                                                                                                                                                    "type": "address",
                                                                                                                                                    "value": "security"
                                                                                                                                                },
                                                                                                                                                "id": 7433,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15165:8:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7434,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "15150:24:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 7387,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "k"
                                                                                                                                        },
                                                                                                                                        "id": 7435,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "15175:1:18"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 7436,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "15150:27:18"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 7437,
                                                                                                                        "name": "MemberAccess",
                                                                                                                        "src": "15150:33:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 7438,
                                                                                                                "name": "Assignment",
                                                                                                                "src": "15136:47:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 7439,
                                                                                                        "name": "ExpressionStatement",
                                                                                                        "src": "15136:47:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {},
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "!=",
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 7344,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "cashOffered"
                                                                                                                        },
                                                                                                                        "id": 7440,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "15329:11:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "hexvalue": "30",
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": true,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "token": "number",
                                                                                                                            "type": "int_const 0",
                                                                                                                            "value": "0"
                                                                                                                        },
                                                                                                                        "id": 7441,
                                                                                                                        "name": "Literal",
                                                                                                                        "src": "15342:1:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 7442,
                                                                                                                "name": "BinaryOperation",
                                                                                                                "src": "15329:14:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "commonType": {
                                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                                        "typeString": "uint256"
                                                                                                                                    },
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "operator": "<=",
                                                                                                                                    "type": "bool"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "tryCall": false,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_bool",
                                                                                                                                                            "typeString": "bool"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "div",
                                                                                                                                                    "referencedDeclaration": 2309,
                                                                                                                                                    "type": "function (uint256,uint256,bool) pure returns (uint256)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2367,
                                                                                                                                                            "type": "type(library Math)",
                                                                                                                                                            "value": "Math"
                                                                                                                                                        },
                                                                                                                                                        "id": 7443,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15540:4:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7444,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "15540:8:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 7341,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "minCashDesired"
                                                                                                                                                },
                                                                                                                                                "id": 7445,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15549:14:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 7338,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "securityOffered"
                                                                                                                                                },
                                                                                                                                                "id": 7446,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15602:15:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "hexvalue": "74727565",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "token": "bool",
                                                                                                                                                    "type": "bool",
                                                                                                                                                    "value": "true"
                                                                                                                                                },
                                                                                                                                                "id": 7447,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "15619:4:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7448,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "15540:84:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "names": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "tryCall": false,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "type_conversion": false
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "argumentTypes": [
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                        },
                                                                                                                                                        {
                                                                                                                                                            "typeIdentifier": "t_bool",
                                                                                                                                                            "typeString": "bool"
                                                                                                                                                        }
                                                                                                                                                    ],
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "div",
                                                                                                                                                    "referencedDeclaration": 2309,
                                                                                                                                                    "type": "function (uint256,uint256,bool) pure returns (uint256)"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 2367,
                                                                                                                                                            "type": "type(library Math)",
                                                                                                                                                            "value": "Math"
                                                                                                                                                        },
                                                                                                                                                        "id": 7449,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "15665:4:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7450,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "15665:8:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 7344,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "cashOffered"
                                                                                                                                                },
                                                                                                                                                "id": 7451,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "15674:11:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": true,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "member_name": "amountDesired",
                                                                                                                                                    "referencedDeclaration": 11666,
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "struct IMarketMaker.token storage ref"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 6531,
                                                                                                                                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                                                                                                                    "value": "mmtokens"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7452,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "15724:8:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                    "value": "cash"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7453,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "15733:4:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7454,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "15724:14:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "security"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7455,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15739:8:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7456,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "15724:24:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 7387,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "k"
                                                                                                                                                                },
                                                                                                                                                                "id": 7457,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "15749:1:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7458,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "15724:27:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7459,
                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                "src": "15724:41:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "hexvalue": "74727565",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "token": "bool",
                                                                                                                                                    "type": "bool",
                                                                                                                                                    "value": "true"
                                                                                                                                                },
                                                                                                                                                "id": 7460,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "15767:4:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7461,
                                                                                                                                        "name": "FunctionCall",
                                                                                                                                        "src": "15665:107:18"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 7462,
                                                                                                                                "name": "BinaryOperation",
                                                                                                                                "src": "15540:232:18"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {},
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "commonType": {
                                                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                                                        "typeString": "uint256"
                                                                                                                                                    },
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "==",
                                                                                                                                                    "type": "bool"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "type": "uint256"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "mapping(address => uint256)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 6542,
                                                                                                                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                                                                                                                            "value": "pairedTokenIndex"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7463,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15919:16:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "security"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7464,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "15936:8:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7465,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "15919:26:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "cash"
                                                                                                                                                                },
                                                                                                                                                                "id": 7466,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "15946:4:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7467,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "15919:32:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "hexvalue": "30",
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "token": "number",
                                                                                                                                                            "type": "int_const 0",
                                                                                                                                                            "value": "0"
                                                                                                                                                        },
                                                                                                                                                        "id": 7468,
                                                                                                                                                        "name": "Literal",
                                                                                                                                                        "src": "15953:1:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7469,
                                                                                                                                                "name": "BinaryOperation",
                                                                                                                                                "src": "15919:35:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "names": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "tryCall": false,
                                                                                                                                                                    "type": "tuple()",
                                                                                                                                                                    "type_conversion": false
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                }
                                                                                                                                                                            ],
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "member_name": "push",
                                                                                                                                                                            "type": "function (address)"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "address[] storage ref"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 6536,
                                                                                                                                                                                            "type": "mapping(address => address[] storage ref)",
                                                                                                                                                                                            "value": "pairedTokens"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7470,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "15998:12:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                            "value": "security"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7471,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16011:8:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7472,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "15998:22:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7473,
                                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                                        "src": "15998:27:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "cash"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7474,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16026:4:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7475,
                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                "src": "15998:33:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7476,
                                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                                        "src": "15998:33:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "operator": "=",
                                                                                                                                                                    "type": "uint256"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": true,
                                                                                                                                                                            "type": "uint256"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "mapping(address => uint256)"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 6542,
                                                                                                                                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                                                                                                                                            "value": "pairedTokenIndex"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7477,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16074:16:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                            "value": "security"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7478,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16091:8:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7480,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "16074:26:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                    "value": "cash"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7479,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "16101:4:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7481,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "16074:32:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "member_name": "length",
                                                                                                                                                                            "type": "uint256"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "address[] storage ref"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 6536,
                                                                                                                                                                                            "type": "mapping(address => address[] storage ref)",
                                                                                                                                                                                            "value": "pairedTokens"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7482,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16109:12:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                            "value": "security"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7483,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16122:8:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7484,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "16109:22:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7485,
                                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                                        "src": "16109:29:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7486,
                                                                                                                                                                "name": "Assignment",
                                                                                                                                                                "src": "16074:64:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7487,
                                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                                        "src": "16074:64:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7488,
                                                                                                                                                "name": "Block",
                                                                                                                                                "src": "15955:267:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7489,
                                                                                                                                        "name": "IfStatement",
                                                                                                                                        "src": "15916:306:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {},
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "commonType": {
                                                                                                                                                        "typeIdentifier": "t_bool",
                                                                                                                                                        "typeString": "bool"
                                                                                                                                                    },
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "||",
                                                                                                                                                    "type": "bool"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "commonType": {
                                                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                                                "typeString": "uint256"
                                                                                                                                                            },
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "operator": "<",
                                                                                                                                                            "type": "bool"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "names": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "tryCall": false,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "type_conversion": false
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                                },
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                                },
                                                                                                                                                                                {
                                                                                                                                                                                    "typeIdentifier": "t_bool",
                                                                                                                                                                                    "typeString": "bool"
                                                                                                                                                                                }
                                                                                                                                                                            ],
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "member_name": "div",
                                                                                                                                                                            "referencedDeclaration": 2309,
                                                                                                                                                                            "type": "function (uint256,uint256,bool) pure returns (uint256)"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 2367,
                                                                                                                                                                                    "type": "type(library Math)",
                                                                                                                                                                                    "value": "Math"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7490,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "16384:4:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7491,
                                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                                        "src": "16384:8:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7341,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "minCashDesired"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7492,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16393:14:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7338,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "value": "securityOffered"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7493,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "16450:15:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "hexvalue": "74727565",
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": true,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "token": "bool",
                                                                                                                                                                            "type": "bool",
                                                                                                                                                                            "value": "true"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7494,
                                                                                                                                                                        "name": "Literal",
                                                                                                                                                                        "src": "16467:4:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7495,
                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                "src": "16384:88:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "minPrice",
                                                                                                                                                                    "referencedDeclaration": 11677,
                                                                                                                                                                    "type": "uint256"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "struct IMarketMaker.liquidity storage ref"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 6548,
                                                                                                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                                                                                                                            "value": "qlTokens"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7496,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16517:8:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                            "value": "security"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7497,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16526:8:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7498,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "16517:18:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                    "value": "cash"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7499,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "16536:4:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7500,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "16517:24:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7501,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "16517:33:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7502,
                                                                                                                                                        "name": "BinaryOperation",
                                                                                                                                                        "src": "16384:166:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "commonType": {
                                                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                                                "typeString": "uint256"
                                                                                                                                                            },
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "operator": "==",
                                                                                                                                                            "type": "bool"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "minPrice",
                                                                                                                                                                    "referencedDeclaration": 11677,
                                                                                                                                                                    "type": "uint256"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "struct IMarketMaker.liquidity storage ref"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 6548,
                                                                                                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                                                                                                                            "value": "qlTokens"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7503,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16597:8:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                            "value": "security"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7504,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16606:8:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7505,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "16597:18:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                    "value": "cash"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7506,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "16616:4:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7507,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "16597:24:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7508,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "16597:33:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "hexvalue": "30",
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": true,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "token": "number",
                                                                                                                                                                    "type": "int_const 0",
                                                                                                                                                                    "value": "0"
                                                                                                                                                                },
                                                                                                                                                                "id": 7509,
                                                                                                                                                                "name": "Literal",
                                                                                                                                                                "src": "16632:1:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7510,
                                                                                                                                                        "name": "BinaryOperation",
                                                                                                                                                        "src": "16597:36:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7511,
                                                                                                                                                "name": "BinaryOperation",
                                                                                                                                                "src": "16384:249:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "operator": "=",
                                                                                                                                                                    "type": "uint256"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": true,
                                                                                                                                                                            "member_name": "minPrice",
                                                                                                                                                                            "referencedDeclaration": 11677,
                                                                                                                                                                            "type": "uint256"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "struct IMarketMaker.liquidity storage ref"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                                            "isPure": false,
                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                            "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                                                                        },
                                                                                                                                                                                        "children": [
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 6548,
                                                                                                                                                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                                                                                                                                    "value": "qlTokens"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 7512,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "16718:8:18"
                                                                                                                                                                                            },
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 7321,
                                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                                    "value": "security"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 7513,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "16727:8:18"
                                                                                                                                                                                            }
                                                                                                                                                                                        ],
                                                                                                                                                                                        "id": 7515,
                                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                                        "src": "16718:18:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                            "value": "cash"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7514,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16737:4:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7516,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "16718:24:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7517,
                                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                                        "src": "16718:33:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "names": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "tryCall": false,
                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                            "type_conversion": false
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                                        {
                                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                                        },
                                                                                                                                                                                        {
                                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                                        }
                                                                                                                                                                                    ],
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "member_name": "divDown",
                                                                                                                                                                                    "referencedDeclaration": 631,
                                                                                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 780,
                                                                                                                                                                                            "type": "type(library FixedPoint)",
                                                                                                                                                                                            "value": "FixedPoint"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7518,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16799:10:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7519,
                                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                                "src": "16799:18:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "names": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "tryCall": false,
                                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                                    "type_conversion": false
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                                {
                                                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                                                },
                                                                                                                                                                                                {
                                                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                                                }
                                                                                                                                                                                            ],
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 9282,
                                                                                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                                                                                                                            "value": "_upscale"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7520,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16818:8:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 7341,
                                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                                            "value": "minCashDesired"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7521,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16827:14:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                                            "isPure": false,
                                                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                            "names": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "tryCall": false,
                                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                                            "type_conversion": false
                                                                                                                                                                                        },
                                                                                                                                                                                        "children": [
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                                                        {
                                                                                                                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                                                                                                                            "typeString": "contract IERC20"
                                                                                                                                                                                                        }
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 9248,
                                                                                                                                                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                                                                                                                                                    "value": "_computeScalingFactor"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 7522,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "16843:21:18"
                                                                                                                                                                                            },
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                                    "names": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "tryCall": false,
                                                                                                                                                                                                    "type": "contract IERC20",
                                                                                                                                                                                                    "type_conversion": true
                                                                                                                                                                                                },
                                                                                                                                                                                                "children": [
                                                                                                                                                                                                    {
                                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                                                {
                                                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                                                }
                                                                                                                                                                                                            ],
                                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                                null
                                                                                                                                                                                                            ],
                                                                                                                                                                                                            "referencedDeclaration": 2938,
                                                                                                                                                                                                            "type": "type(contract IERC20)",
                                                                                                                                                                                                            "value": "IERC20"
                                                                                                                                                                                                        },
                                                                                                                                                                                                        "id": 7523,
                                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                                        "src": "16865:6:18"
                                                                                                                                                                                                    },
                                                                                                                                                                                                    {
                                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                                null
                                                                                                                                                                                                            ],
                                                                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                                            "value": "cash"
                                                                                                                                                                                                        },
                                                                                                                                                                                                        "id": 7524,
                                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                                        "src": "16872:4:18"
                                                                                                                                                                                                    }
                                                                                                                                                                                                ],
                                                                                                                                                                                                "id": 7525,
                                                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                                                "src": "16865:12:18"
                                                                                                                                                                                            }
                                                                                                                                                                                        ],
                                                                                                                                                                                        "id": 7526,
                                                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                                                        "src": "16843:35:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7527,
                                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                                "src": "16818:61:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "names": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "tryCall": false,
                                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                                    "type_conversion": false
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                                {
                                                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                                                },
                                                                                                                                                                                                {
                                                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                                                }
                                                                                                                                                                                            ],
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 9282,
                                                                                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                                                                                                                            "value": "_upscale"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7528,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16934:8:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 7338,
                                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                                            "value": "securityOffered"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7529,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "16943:15:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                                            "isLValue": false,
                                                                                                                                                                                            "isPure": false,
                                                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                                            "names": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "tryCall": false,
                                                                                                                                                                                            "type": "uint256",
                                                                                                                                                                                            "type_conversion": false
                                                                                                                                                                                        },
                                                                                                                                                                                        "children": [
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                                                        {
                                                                                                                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                                                                                                                            "typeString": "contract IERC20"
                                                                                                                                                                                                        }
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "referencedDeclaration": 9248,
                                                                                                                                                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                                                                                                                                                    "value": "_computeScalingFactor"
                                                                                                                                                                                                },
                                                                                                                                                                                                "id": 7530,
                                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                                "src": "16960:21:18"
                                                                                                                                                                                            },
                                                                                                                                                                                            {
                                                                                                                                                                                                "attributes": {
                                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                                    "names": [
                                                                                                                                                                                                        null
                                                                                                                                                                                                    ],
                                                                                                                                                                                                    "tryCall": false,
                                                                                                                                                                                                    "type": "contract IERC20",
                                                                                                                                                                                                    "type_conversion": true
                                                                                                                                                                                                },
                                                                                                                                                                                                "children": [
                                                                                                                                                                                                    {
                                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                                                                {
                                                                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                                                                }
                                                                                                                                                                                                            ],
                                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                                null
                                                                                                                                                                                                            ],
                                                                                                                                                                                                            "referencedDeclaration": 2938,
                                                                                                                                                                                                            "type": "type(contract IERC20)",
                                                                                                                                                                                                            "value": "IERC20"
                                                                                                                                                                                                        },
                                                                                                                                                                                                        "id": 7531,
                                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                                        "src": "16982:6:18"
                                                                                                                                                                                                    },
                                                                                                                                                                                                    {
                                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                                null
                                                                                                                                                                                                            ],
                                                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                                            "value": "security"
                                                                                                                                                                                                        },
                                                                                                                                                                                                        "id": 7532,
                                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                                        "src": "16989:8:18"
                                                                                                                                                                                                    }
                                                                                                                                                                                                ],
                                                                                                                                                                                                "id": 7533,
                                                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                                                "src": "16982:16:18"
                                                                                                                                                                                            }
                                                                                                                                                                                        ],
                                                                                                                                                                                        "id": 7534,
                                                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                                                        "src": "16960:39:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7535,
                                                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                                                "src": "16934:66:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7536,
                                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                                        "src": "16799:202:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7537,
                                                                                                                                                                "name": "Assignment",
                                                                                                                                                                "src": "16718:283:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7538,
                                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                                        "src": "16718:283:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7539,
                                                                                                                                                "name": "Block",
                                                                                                                                                "src": "16672:369:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7540,
                                                                                                                                        "name": "IfStatement",
                                                                                                                                        "src": "16381:660:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "=",
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": true,
                                                                                                                                                            "member_name": "amountIssued",
                                                                                                                                                            "referencedDeclaration": 11681,
                                                                                                                                                            "type": "uint256"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "struct IMarketMaker.liquidity storage ref"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 6548,
                                                                                                                                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                                                                                                                    "value": "qlTokens"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7541,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "17154:8:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 7321,
                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                    "value": "security"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7542,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "17163:8:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7544,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "17154:18:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "cash"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7543,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "17173:4:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7545,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "17154:24:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7546,
                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                        "src": "17154:37:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7338,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "securityOffered"
                                                                                                                                                        },
                                                                                                                                                        "id": 7547,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "17351:15:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7548,
                                                                                                                                                "name": "Assignment",
                                                                                                                                                "src": "17154:212:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7549,
                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                        "src": "17154:212:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "=",
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": true,
                                                                                                                                                            "member_name": "amountOffered",
                                                                                                                                                            "referencedDeclaration": 11683,
                                                                                                                                                            "type": "uint256"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "struct IMarketMaker.liquidity storage ref"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 6548,
                                                                                                                                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                                                                                                                    "value": "qlTokens"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7550,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "17463:8:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 7321,
                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                    "value": "security"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7551,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "17472:8:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7553,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "17463:18:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "cash"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7552,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "17482:4:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7554,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "17463:24:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7555,
                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                        "src": "17463:38:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "tryCall": false,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "type_conversion": false
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                        },
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "add",
                                                                                                                                                                    "referencedDeclaration": 2109,
                                                                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 2367,
                                                                                                                                                                            "type": "type(library Math)",
                                                                                                                                                                            "value": "Math"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7556,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "17558:4:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7557,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "17558:8:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "amountOffered",
                                                                                                                                                                    "referencedDeclaration": 11683,
                                                                                                                                                                    "type": "uint256"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "struct IMarketMaker.liquidity storage ref"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                                    "isPure": false,
                                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                                    "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                                                                                                                },
                                                                                                                                                                                "children": [
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 6548,
                                                                                                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                                                                                                                            "value": "qlTokens"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7558,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "17567:8:18"
                                                                                                                                                                                    },
                                                                                                                                                                                    {
                                                                                                                                                                                        "attributes": {
                                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                                null
                                                                                                                                                                                            ],
                                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                                            "type": "address",
                                                                                                                                                                                            "value": "security"
                                                                                                                                                                                        },
                                                                                                                                                                                        "id": 7559,
                                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                                        "src": "17576:8:18"
                                                                                                                                                                                    }
                                                                                                                                                                                ],
                                                                                                                                                                                "id": 7560,
                                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                                "src": "17567:18:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                    "value": "cash"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7561,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "17586:4:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7562,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "17567:24:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7563,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "17567:38:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 7344,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "cashOffered"
                                                                                                                                                                },
                                                                                                                                                                "id": 7564,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "17660:11:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7565,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "17558:114:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7566,
                                                                                                                                                "name": "Assignment",
                                                                                                                                                "src": "17463:209:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7567,
                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                        "src": "17463:209:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "assignments": [
                                                                                                                                                7569
                                                                                                                                            ]
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "constant": false,
                                                                                                                                                    "mutability": "mutable",
                                                                                                                                                    "name": "provider",
                                                                                                                                                    "scope": 7616,
                                                                                                                                                    "stateVariable": false,
                                                                                                                                                    "storageLocation": "memory",
                                                                                                                                                    "type": "struct IMarketMaker.lp",
                                                                                                                                                    "visibility": "internal"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "name": "lp",
                                                                                                                                                            "referencedDeclaration": 11695,
                                                                                                                                                            "type": "struct IMarketMaker.lp"
                                                                                                                                                        },
                                                                                                                                                        "id": 7568,
                                                                                                                                                        "name": "UserDefinedTypeName",
                                                                                                                                                        "src": "17830:2:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7569,
                                                                                                                                                "name": "VariableDeclaration",
                                                                                                                                                "src": "17830:18:18"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "isStructConstructorCall": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "names": [
                                                                                                                                                        "owner",
                                                                                                                                                        "tokenOffered",
                                                                                                                                                        "underwritten",
                                                                                                                                                        "subscribed",
                                                                                                                                                        "earned"
                                                                                                                                                    ],
                                                                                                                                                    "tryCall": false,
                                                                                                                                                    "type": "struct IMarketMaker.lp memory",
                                                                                                                                                    "type_conversion": false
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                                                                                    "typeString": "int_const 0"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_rational_0_by_1",
                                                                                                                                                                    "typeString": "int_const 0"
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 11695,
                                                                                                                                                            "type": "type(struct IMarketMaker.lp storage pointer)",
                                                                                                                                                            "value": "lp"
                                                                                                                                                        },
                                                                                                                                                        "id": 7570,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "17851:2:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7329,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "marketmaker"
                                                                                                                                                        },
                                                                                                                                                        "id": 7571,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "17905:11:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "cash"
                                                                                                                                                        },
                                                                                                                                                        "id": 7572,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "17974:4:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7344,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "cashOffered"
                                                                                                                                                        },
                                                                                                                                                        "id": 7573,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "18036:11:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "hexvalue": "30",
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "token": "number",
                                                                                                                                                            "type": "int_const 0",
                                                                                                                                                            "value": "0"
                                                                                                                                                        },
                                                                                                                                                        "id": 7574,
                                                                                                                                                        "name": "Literal",
                                                                                                                                                        "src": "18103:1:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "hexvalue": "30",
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "token": "number",
                                                                                                                                                            "type": "int_const 0",
                                                                                                                                                            "value": "0"
                                                                                                                                                        },
                                                                                                                                                        "id": 7575,
                                                                                                                                                        "name": "Literal",
                                                                                                                                                        "src": "18156:1:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7576,
                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                "src": "17851:346:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7577,
                                                                                                                                        "name": "VariableDeclarationStatement",
                                                                                                                                        "src": "17830:367:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "names": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "tryCall": false,
                                                                                                                                                    "type": "tuple()",
                                                                                                                                                    "type_conversion": false
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_struct$_lp_$11695_memory_ptr",
                                                                                                                                                                    "typeString": "struct IMarketMaker.lp memory"
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "member_name": "push",
                                                                                                                                                            "type": "function (struct IMarketMaker.lp storage ref)"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 6553,
                                                                                                                                                                            "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                                                                                                                            "value": "liquidityProviders"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7578,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "18236:18:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "security"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7579,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "18255:8:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7580,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "18236:28:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7581,
                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                        "src": "18236:33:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7569,
                                                                                                                                                            "type": "struct IMarketMaker.lp memory",
                                                                                                                                                            "value": "provider"
                                                                                                                                                        },
                                                                                                                                                        "id": 7582,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "18270:8:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7583,
                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                "src": "18236:43:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7584,
                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                        "src": "18236:43:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "names": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "tryCall": false,
                                                                                                                                                    "type": "tuple()",
                                                                                                                                                    "type_conversion": false
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "argumentTypes": [
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                                    "typeString": "address"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                },
                                                                                                                                                                {
                                                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                                                    "typeString": "uint256"
                                                                                                                                                                }
                                                                                                                                                            ],
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 6626,
                                                                                                                                                            "type": "function (address,address,address,address,uint256,uint256,uint256)",
                                                                                                                                                            "value": "marketmakers"
                                                                                                                                                        },
                                                                                                                                                        "id": 7585,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "18325:12:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "security"
                                                                                                                                                        },
                                                                                                                                                        "id": 7586,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "18338:8:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "tryCall": false,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "type_conversion": true
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                                                                                                            "typeString": "contract PrimaryIssueManager"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": true,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "type(address)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "name": "address"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7587,
                                                                                                                                                                        "name": "ElementaryTypeName",
                                                                                                                                                                        "src": "18348:7:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7588,
                                                                                                                                                                "name": "ElementaryTypeNameExpression",
                                                                                                                                                                "src": "18348:7:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": -28,
                                                                                                                                                                    "type": "contract PrimaryIssueManager",
                                                                                                                                                                    "value": "this"
                                                                                                                                                                },
                                                                                                                                                                "id": 7589,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "18356:4:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7590,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "18348:13:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7329,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "marketmaker"
                                                                                                                                                        },
                                                                                                                                                        "id": 7591,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "18363:11:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                            "type": "address",
                                                                                                                                                            "value": "cash"
                                                                                                                                                        },
                                                                                                                                                        "id": 7592,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "18376:4:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7344,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "cashOffered"
                                                                                                                                                        },
                                                                                                                                                        "id": 7593,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "18382:11:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "member_name": "subscribed",
                                                                                                                                                            "referencedDeclaration": 11692,
                                                                                                                                                            "type": "uint256"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 7569,
                                                                                                                                                                    "type": "struct IMarketMaker.lp memory",
                                                                                                                                                                    "value": "provider"
                                                                                                                                                                },
                                                                                                                                                                "id": 7594,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "18395:8:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7595,
                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                        "src": "18395:19:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "member_name": "earned",
                                                                                                                                                            "referencedDeclaration": 11694,
                                                                                                                                                            "type": "uint256"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 7569,
                                                                                                                                                                    "type": "struct IMarketMaker.lp memory",
                                                                                                                                                                    "value": "provider"
                                                                                                                                                                },
                                                                                                                                                                "id": 7596,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "18416:8:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7597,
                                                                                                                                                        "name": "MemberAccess",
                                                                                                                                                        "src": "18416:15:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7598,
                                                                                                                                                "name": "FunctionCall",
                                                                                                                                                "src": "18325:107:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7599,
                                                                                                                                        "name": "EmitStatement",
                                                                                                                                        "src": "18320:112:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "=",
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": true,
                                                                                                                                                            "type": "uint256"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 6557,
                                                                                                                                                                    "type": "mapping(address => uint256)",
                                                                                                                                                                    "value": "totalUnderwritten"
                                                                                                                                                                },
                                                                                                                                                                "id": 7600,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "18473:17:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 7321,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "security"
                                                                                                                                                                },
                                                                                                                                                                "id": 7601,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "18491:8:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7602,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "18473:27:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "tryCall": false,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "type_conversion": false
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                        },
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "add",
                                                                                                                                                                    "referencedDeclaration": 3076,
                                                                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3123,
                                                                                                                                                                            "type": "type(library SafeMath)",
                                                                                                                                                                            "value": "SafeMath"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7603,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "18545:8:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7604,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "18545:12:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "uint256"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 6557,
                                                                                                                                                                            "type": "mapping(address => uint256)",
                                                                                                                                                                            "value": "totalUnderwritten"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7605,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "18558:17:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7321,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "security"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7606,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "18576:8:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7607,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "18558:27:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 7344,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "cashOffered"
                                                                                                                                                                },
                                                                                                                                                                "id": 7608,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "18587:11:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7609,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "18545:54:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7610,
                                                                                                                                                "name": "Assignment",
                                                                                                                                                "src": "18473:126:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7611,
                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                        "src": "18473:126:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "=",
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "referencedDeclaration": 7344,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "value": "cashOffered"
                                                                                                                                                        },
                                                                                                                                                        "id": 7612,
                                                                                                                                                        "name": "Identifier",
                                                                                                                                                        "src": "18638:11:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "hexvalue": "30",
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": true,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "token": "number",
                                                                                                                                                            "type": "int_const 0",
                                                                                                                                                            "value": "0"
                                                                                                                                                        },
                                                                                                                                                        "id": 7613,
                                                                                                                                                        "name": "Literal",
                                                                                                                                                        "src": "18652:1:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7614,
                                                                                                                                                "name": "Assignment",
                                                                                                                                                "src": "18638:15:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7615,
                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                        "src": "18638:15:18"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 7616,
                                                                                                                                "name": "Block",
                                                                                                                                "src": "15807:2882:18"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": false,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "operator": "=",
                                                                                                                                                    "type": "uint256"
                                                                                                                                                },
                                                                                                                                                "children": [
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": true,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "lValueRequested": true,
                                                                                                                                                            "type": "uint256"
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "mapping(address => uint256)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 6598,
                                                                                                                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                                                                                                                            "value": "LPTokenAllotted"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7617,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "18913:15:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7329,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "marketmaker"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7618,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "18929:11:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7620,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "18913:28:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 7335,
                                                                                                                                                                    "type": "address",
                                                                                                                                                                    "value": "cash"
                                                                                                                                                                },
                                                                                                                                                                "id": 7619,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "18942:4:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7621,
                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                        "src": "18913:34:18"
                                                                                                                                                    },
                                                                                                                                                    {
                                                                                                                                                        "attributes": {
                                                                                                                                                            "isConstant": false,
                                                                                                                                                            "isLValue": false,
                                                                                                                                                            "isPure": false,
                                                                                                                                                            "isStructConstructorCall": false,
                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                            "names": [
                                                                                                                                                                null
                                                                                                                                                            ],
                                                                                                                                                            "tryCall": false,
                                                                                                                                                            "type": "uint256",
                                                                                                                                                            "type_conversion": false
                                                                                                                                                        },
                                                                                                                                                        "children": [
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "argumentTypes": [
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                        },
                                                                                                                                                                        {
                                                                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                                                                            "typeString": "uint256"
                                                                                                                                                                        }
                                                                                                                                                                    ],
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": false,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "member_name": "add",
                                                                                                                                                                    "referencedDeclaration": 3076,
                                                                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 3123,
                                                                                                                                                                            "type": "type(library SafeMath)",
                                                                                                                                                                            "value": "SafeMath"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7622,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "18992:8:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7623,
                                                                                                                                                                "name": "MemberAccess",
                                                                                                                                                                "src": "18992:12:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "isConstant": false,
                                                                                                                                                                    "isLValue": true,
                                                                                                                                                                    "isPure": false,
                                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                                    "type": "uint256"
                                                                                                                                                                },
                                                                                                                                                                "children": [
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "isConstant": false,
                                                                                                                                                                            "isLValue": true,
                                                                                                                                                                            "isPure": false,
                                                                                                                                                                            "lValueRequested": false,
                                                                                                                                                                            "type": "mapping(address => uint256)"
                                                                                                                                                                        },
                                                                                                                                                                        "children": [
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 6598,
                                                                                                                                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                                                                                                                                    "value": "LPTokenAllotted"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7624,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "19005:15:18"
                                                                                                                                                                            },
                                                                                                                                                                            {
                                                                                                                                                                                "attributes": {
                                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                                        null
                                                                                                                                                                                    ],
                                                                                                                                                                                    "referencedDeclaration": 7329,
                                                                                                                                                                                    "type": "address",
                                                                                                                                                                                    "value": "marketmaker"
                                                                                                                                                                                },
                                                                                                                                                                                "id": 7625,
                                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                                "src": "19021:11:18"
                                                                                                                                                                            }
                                                                                                                                                                        ],
                                                                                                                                                                        "id": 7626,
                                                                                                                                                                        "name": "IndexAccess",
                                                                                                                                                                        "src": "19005:28:18"
                                                                                                                                                                    },
                                                                                                                                                                    {
                                                                                                                                                                        "attributes": {
                                                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                                                null
                                                                                                                                                                            ],
                                                                                                                                                                            "referencedDeclaration": 7335,
                                                                                                                                                                            "type": "address",
                                                                                                                                                                            "value": "cash"
                                                                                                                                                                        },
                                                                                                                                                                        "id": 7627,
                                                                                                                                                                        "name": "Identifier",
                                                                                                                                                                        "src": "19034:4:18"
                                                                                                                                                                    }
                                                                                                                                                                ],
                                                                                                                                                                "id": 7628,
                                                                                                                                                                "name": "IndexAccess",
                                                                                                                                                                "src": "19005:34:18"
                                                                                                                                                            },
                                                                                                                                                            {
                                                                                                                                                                "attributes": {
                                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                                        null
                                                                                                                                                                    ],
                                                                                                                                                                    "referencedDeclaration": 7344,
                                                                                                                                                                    "type": "uint256",
                                                                                                                                                                    "value": "cashOffered"
                                                                                                                                                                },
                                                                                                                                                                "id": 7629,
                                                                                                                                                                "name": "Identifier",
                                                                                                                                                                "src": "19041:11:18"
                                                                                                                                                            }
                                                                                                                                                        ],
                                                                                                                                                        "id": 7630,
                                                                                                                                                        "name": "FunctionCall",
                                                                                                                                                        "src": "18992:61:18"
                                                                                                                                                    }
                                                                                                                                                ],
                                                                                                                                                "id": 7631,
                                                                                                                                                "name": "Assignment",
                                                                                                                                                "src": "18913:140:18"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 7632,
                                                                                                                                        "name": "ExpressionStatement",
                                                                                                                                        "src": "18913:140:18"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 7633,
                                                                                                                                "name": "Block",
                                                                                                                                "src": "18727:362:18"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 7634,
                                                                                                                        "name": "IfStatement",
                                                                                                                        "src": "15536:3553:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 7635,
                                                                                                                "name": "Block",
                                                                                                                "src": "15344:3776:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 7636,
                                                                                                        "name": "IfStatement",
                                                                                                        "src": "15326:3794:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 7637,
                                                                                                "name": "Block",
                                                                                                "src": "14848:4299:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7638,
                                                                                        "name": "ForStatement",
                                                                                        "src": "14813:4334:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7639,
                                                                                "name": "Block",
                                                                                "src": "14381:4810:18"
                                                                            }
                                                                        ],
                                                                        "id": 7640,
                                                                        "name": "IfStatement",
                                                                        "src": "14351:4840:18"
                                                                    }
                                                                ],
                                                                "id": 7641,
                                                                "name": "Block",
                                                                "src": "14314:4892:18"
                                                            }
                                                        ],
                                                        "id": 7642,
                                                        "name": "ForStatement",
                                                        "src": "14272:4934:18"
                                                    },
                                                    {
                                                        "attributes": {},
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": ">",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6536,
                                                                                            "type": "mapping(address => address[] storage ref)",
                                                                                            "value": "pairedTokens"
                                                                                        },
                                                                                        "id": 7643,
                                                                                        "name": "Identifier",
                                                                                        "src": "19223:12:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7321,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7644,
                                                                                        "name": "Identifier",
                                                                                        "src": "19236:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7645,
                                                                                "name": "IndexAccess",
                                                                                "src": "19223:22:18"
                                                                            }
                                                                        ],
                                                                        "id": 7646,
                                                                        "name": "MemberAccess",
                                                                        "src": "19223:29:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 7647,
                                                                        "name": "Literal",
                                                                        "src": "19254:1:18"
                                                                    }
                                                                ],
                                                                "id": 7648,
                                                                "name": "BinaryOperation",
                                                                "src": "19223:32:18"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "tuple()",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7843,
                                                                                            "type": "function (address,uint256)",
                                                                                            "value": "createPool"
                                                                                        },
                                                                                        "id": 7649,
                                                                                        "name": "Identifier",
                                                                                        "src": "19275:10:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7321,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7650,
                                                                                        "name": "Identifier",
                                                                                        "src": "19286:8:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7323,
                                                                                            "type": "uint256",
                                                                                            "value": "cutoffTime"
                                                                                        },
                                                                                        "id": 7651,
                                                                                        "name": "Identifier",
                                                                                        "src": "19296:10:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7652,
                                                                                "name": "FunctionCall",
                                                                                "src": "19275:32:18"
                                                                            }
                                                                        ],
                                                                        "id": 7653,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "19275:32:18"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "delete",
                                                                                    "prefix": true,
                                                                                    "type": "tuple()"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "address[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6536,
                                                                                                    "type": "mapping(address => address[] storage ref)",
                                                                                                    "value": "pairedTokens"
                                                                                                },
                                                                                                "id": 7654,
                                                                                                "name": "Identifier",
                                                                                                "src": "19333:12:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7321,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 7655,
                                                                                                "name": "Identifier",
                                                                                                "src": "19346:8:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7656,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "19333:22:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7657,
                                                                                "name": "UnaryOperation",
                                                                                "src": "19326:29:18"
                                                                            }
                                                                        ],
                                                                        "id": 7658,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "19326:29:18"
                                                                    }
                                                                ],
                                                                "id": 7659,
                                                                "name": "Block",
                                                                "src": "19256:115:18"
                                                            }
                                                        ],
                                                        "id": 7660,
                                                        "name": "IfStatement",
                                                        "src": "19220:151:18"
                                                    }
                                                ],
                                                "id": 7661,
                                                "name": "Block",
                                                "src": "14162:5220:18"
                                            }
                                        ],
                                        "id": 7662,
                                        "name": "IfStatement",
                                        "src": "14104:5278:18"
                                    }
                                ],
                                "id": 7663,
                                "name": "Block",
                                "src": "13788:5601:18"
                            }
                        ],
                        "id": 7664,
                        "name": "FunctionDefinition",
                        "src": "13709:5680:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "createPool",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 7843,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7665,
                                                "name": "ElementaryTypeName",
                                                "src": "19421:7:18"
                                            }
                                        ],
                                        "id": 7666,
                                        "name": "VariableDeclaration",
                                        "src": "19421:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "cutoffTime",
                                            "scope": 7843,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7667,
                                                "name": "ElementaryTypeName",
                                                "src": "19439:7:18"
                                            }
                                        ],
                                        "id": 7668,
                                        "name": "VariableDeclaration",
                                        "src": "19439:18:18"
                                    }
                                ],
                                "id": 7669,
                                "name": "ParameterList",
                                "src": "19420:38:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 7670,
                                "name": "ParameterList",
                                "src": "19468:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7672
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "matchedTokens",
                                                    "scope": 7842,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 7671,
                                                        "name": "ElementaryTypeName",
                                                        "src": "19479:7:18"
                                                    }
                                                ],
                                                "id": 7672,
                                                "name": "VariableDeclaration",
                                                "src": "19479:21:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "length",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "address[] storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6536,
                                                                    "type": "mapping(address => address[] storage ref)",
                                                                    "value": "pairedTokens"
                                                                },
                                                                "id": 7673,
                                                                "name": "Identifier",
                                                                "src": "19503:12:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7666,
                                                                    "type": "address",
                                                                    "value": "security"
                                                                },
                                                                "id": 7674,
                                                                "name": "Identifier",
                                                                "src": "19516:8:18"
                                                            }
                                                        ],
                                                        "id": 7675,
                                                        "name": "IndexAccess",
                                                        "src": "19503:22:18"
                                                    }
                                                ],
                                                "id": 7676,
                                                "name": "MemberAccess",
                                                "src": "19503:29:18"
                                            }
                                        ],
                                        "id": 7677,
                                        "name": "VariableDeclarationStatement",
                                        "src": "19479:53:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        7679
                                                    ]
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "mutability": "mutable",
                                                            "name": "x",
                                                            "scope": 7841,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 7678,
                                                                "name": "ElementaryTypeName",
                                                                "src": "19613:4:18"
                                                            }
                                                        ],
                                                        "id": 7679,
                                                        "name": "VariableDeclaration",
                                                        "src": "19613:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 7680,
                                                        "name": "Literal",
                                                        "src": "19620:1:18"
                                                    }
                                                ],
                                                "id": 7681,
                                                "name": "VariableDeclarationStatement",
                                                "src": "19613:8:18"
                                            },
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7679,
                                                            "type": "uint256",
                                                            "value": "x"
                                                        },
                                                        "id": 7682,
                                                        "name": "Identifier",
                                                        "src": "19623:1:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7672,
                                                            "type": "uint256",
                                                            "value": "matchedTokens"
                                                        },
                                                        "id": 7683,
                                                        "name": "Identifier",
                                                        "src": "19625:13:18"
                                                    }
                                                ],
                                                "id": 7684,
                                                "name": "BinaryOperation",
                                                "src": "19623:15:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7679,
                                                                    "type": "uint256",
                                                                    "value": "x"
                                                                },
                                                                "id": 7685,
                                                                "name": "Identifier",
                                                                "src": "19640:1:18"
                                                            }
                                                        ],
                                                        "id": 7686,
                                                        "name": "UnaryOperation",
                                                        "src": "19640:3:18"
                                                    }
                                                ],
                                                "id": 7687,
                                                "name": "ExpressionStatement",
                                                "src": "19640:3:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                7689
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "lptoken",
                                                                    "scope": 7840,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 7688,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "19659:7:18"
                                                                    }
                                                                ],
                                                                "id": 7689,
                                                                "name": "VariableDeclaration",
                                                                "src": "19659:15:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6536,
                                                                                    "type": "mapping(address => address[] storage ref)",
                                                                                    "value": "pairedTokens"
                                                                                },
                                                                                "id": 7690,
                                                                                "name": "Identifier",
                                                                                "src": "19677:12:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7666,
                                                                                    "type": "address",
                                                                                    "value": "security"
                                                                                },
                                                                                "id": 7691,
                                                                                "name": "Identifier",
                                                                                "src": "19690:8:18"
                                                                            }
                                                                        ],
                                                                        "id": 7692,
                                                                        "name": "IndexAccess",
                                                                        "src": "19677:22:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7679,
                                                                            "type": "uint256",
                                                                            "value": "x"
                                                                        },
                                                                        "id": 7693,
                                                                        "name": "Identifier",
                                                                        "src": "19700:1:18"
                                                                    }
                                                                ],
                                                                "id": 7694,
                                                                "name": "IndexAccess",
                                                                "src": "19677:25:18"
                                                            }
                                                        ],
                                                        "id": 7695,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "19659:43:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                7697
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "securityAmount",
                                                                    "scope": 7840,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "uint256",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint256",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 7696,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "19717:7:18"
                                                                    }
                                                                ],
                                                                "id": 7697,
                                                                "name": "VariableDeclaration",
                                                                "src": "19717:22:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "amountIssued",
                                                                    "referencedDeclaration": 11681,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.liquidity storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6548,
                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                            "value": "qlTokens"
                                                                                        },
                                                                                        "id": 7698,
                                                                                        "name": "Identifier",
                                                                                        "src": "19742:8:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7666,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7699,
                                                                                        "name": "Identifier",
                                                                                        "src": "19751:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7700,
                                                                                "name": "IndexAccess",
                                                                                "src": "19742:18:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7689,
                                                                                    "type": "address",
                                                                                    "value": "lptoken"
                                                                                },
                                                                                "id": 7701,
                                                                                "name": "Identifier",
                                                                                "src": "19761:7:18"
                                                                            }
                                                                        ],
                                                                        "id": 7702,
                                                                        "name": "IndexAccess",
                                                                        "src": "19742:27:18"
                                                                    }
                                                                ],
                                                                "id": 7703,
                                                                "name": "MemberAccess",
                                                                "src": "19742:40:18"
                                                            }
                                                        ],
                                                        "id": 7704,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "19717:65:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                7706
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "cashAmount",
                                                                    "scope": 7840,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "uint256",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint256",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 7705,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "19797:7:18"
                                                                    }
                                                                ],
                                                                "id": 7706,
                                                                "name": "VariableDeclaration",
                                                                "src": "19797:18:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "amountOffered",
                                                                    "referencedDeclaration": 11683,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.liquidity storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6548,
                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                            "value": "qlTokens"
                                                                                        },
                                                                                        "id": 7707,
                                                                                        "name": "Identifier",
                                                                                        "src": "19818:8:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7666,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7708,
                                                                                        "name": "Identifier",
                                                                                        "src": "19827:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7709,
                                                                                "name": "IndexAccess",
                                                                                "src": "19818:18:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7689,
                                                                                    "type": "address",
                                                                                    "value": "lptoken"
                                                                                },
                                                                                "id": 7710,
                                                                                "name": "Identifier",
                                                                                "src": "19837:7:18"
                                                                            }
                                                                        ],
                                                                        "id": 7711,
                                                                        "name": "IndexAccess",
                                                                        "src": "19818:27:18"
                                                                    }
                                                                ],
                                                                "id": 7712,
                                                                "name": "MemberAccess",
                                                                "src": "19818:41:18"
                                                            }
                                                        ],
                                                        "id": 7713,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "19797:62:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                7717
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "poolparams",
                                                                    "scope": 7840,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "memory",
                                                                    "type": "struct IPrimaryIssuePoolFactory.FactoryPoolParams",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "IPrimaryIssuePoolFactory.FactoryPoolParams",
                                                                            "referencedDeclaration": 12040,
                                                                            "type": "struct IPrimaryIssuePoolFactory.FactoryPoolParams"
                                                                        },
                                                                        "id": 7716,
                                                                        "name": "UserDefinedTypeName",
                                                                        "src": "19886:42:18"
                                                                    }
                                                                ],
                                                                "id": 7717,
                                                                "name": "VariableDeclaration",
                                                                "src": "19886:60:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": true,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        "name",
                                                                        "symbol",
                                                                        "security",
                                                                        "currency",
                                                                        "minimumPrice",
                                                                        "minimumOrderSize",
                                                                        "maxAmountsIn",
                                                                        "swapFeePercentage",
                                                                        "cutOffTime",
                                                                        "offeringDocs"
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "struct IPrimaryIssuePoolFactory.FactoryPoolParams memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_d8407c43b70b062a4ebfce2d65b9d672a39ddff01e2772e896f61833dce954b7",
                                                                                    "typeString": "literal_string \"Verified Pool Token\""
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_stringliteral_7fee470b81c86493872dc1c9070ce794188d075d1c10f31e689bb13cbd714392",
                                                                                    "typeString": "literal_string \"VPT\""
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_string_storage",
                                                                                    "typeString": "string storage ref"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "FactoryPoolParams",
                                                                            "referencedDeclaration": 12040,
                                                                            "type": "type(struct IPrimaryIssuePoolFactory.FactoryPoolParams storage pointer)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 12048,
                                                                                    "type": "type(contract IPrimaryIssuePoolFactory)",
                                                                                    "value": "IPrimaryIssuePoolFactory"
                                                                                },
                                                                                "id": 7718,
                                                                                "name": "Identifier",
                                                                                "src": "19949:24:18"
                                                                            }
                                                                        ],
                                                                        "id": 7719,
                                                                        "name": "MemberAccess",
                                                                        "src": "19949:42:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "566572696669656420506f6f6c20546f6b656e",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"Verified Pool Token\"",
                                                                            "value": "Verified Pool Token"
                                                                        },
                                                                        "id": 7720,
                                                                        "name": "Literal",
                                                                        "src": "20018:21:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "565054",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"VPT\"",
                                                                            "value": "VPT"
                                                                        },
                                                                        "id": 7721,
                                                                        "name": "Literal",
                                                                        "src": "20067:5:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7666,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 7722,
                                                                        "name": "Identifier",
                                                                        "src": "20102:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7689,
                                                                            "type": "address",
                                                                            "value": "lptoken"
                                                                        },
                                                                        "id": 7723,
                                                                        "name": "Identifier",
                                                                        "src": "20140:7:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "minPrice",
                                                                            "referencedDeclaration": 11677,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.liquidity storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6548,
                                                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                                    "value": "qlTokens"
                                                                                                },
                                                                                                "id": 7724,
                                                                                                "name": "Identifier",
                                                                                                "src": "20180:8:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7666,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 7725,
                                                                                                "name": "Identifier",
                                                                                                "src": "20189:8:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7726,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "20180:18:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7689,
                                                                                            "type": "address",
                                                                                            "value": "lptoken"
                                                                                        },
                                                                                        "id": 7727,
                                                                                        "name": "Identifier",
                                                                                        "src": "20199:7:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7728,
                                                                                "name": "IndexAccess",
                                                                                "src": "20180:27:18"
                                                                            }
                                                                        ],
                                                                        "id": 7729,
                                                                        "name": "MemberAccess",
                                                                        "src": "20180:36:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "minimumOrderSize",
                                                                            "referencedDeclaration": 11672,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.token storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6531,
                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                                            "value": "mmtokens"
                                                                                                        },
                                                                                                        "id": 7730,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "20254:8:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7666,
                                                                                                            "type": "address",
                                                                                                            "value": "security"
                                                                                                        },
                                                                                                        "id": 7731,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "20263:8:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 7732,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "20254:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7689,
                                                                                                    "type": "address",
                                                                                                    "value": "lptoken"
                                                                                                },
                                                                                                "id": 7733,
                                                                                                "name": "Identifier",
                                                                                                "src": "20273:7:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7734,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "20254:27:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "hexvalue": "30",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0"
                                                                                        },
                                                                                        "id": 7735,
                                                                                        "name": "Literal",
                                                                                        "src": "20282:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7736,
                                                                                "name": "IndexAccess",
                                                                                "src": "20254:30:18"
                                                                            }
                                                                        ],
                                                                        "id": 7737,
                                                                        "name": "MemberAccess",
                                                                        "src": "20254:47:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7697,
                                                                            "type": "uint256",
                                                                            "value": "securityAmount"
                                                                        },
                                                                        "id": 7738,
                                                                        "name": "Identifier",
                                                                        "src": "20335:14:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6395,
                                                                            "type": "uint256",
                                                                            "value": "swapFeePercentage"
                                                                        },
                                                                        "id": 7739,
                                                                        "name": "Identifier",
                                                                        "src": "20388:17:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7668,
                                                                            "type": "uint256",
                                                                            "value": "cutoffTime"
                                                                        },
                                                                        "id": 7740,
                                                                        "name": "Identifier",
                                                                        "src": "20437:10:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "offeringdocs",
                                                                            "referencedDeclaration": 11674,
                                                                            "type": "string storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.token storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6531,
                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                                            "value": "mmtokens"
                                                                                                        },
                                                                                                        "id": 7741,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "20480:8:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7666,
                                                                                                            "type": "address",
                                                                                                            "value": "security"
                                                                                                        },
                                                                                                        "id": 7742,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "20489:8:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 7743,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "20480:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7689,
                                                                                                    "type": "address",
                                                                                                    "value": "lptoken"
                                                                                                },
                                                                                                "id": 7744,
                                                                                                "name": "Identifier",
                                                                                                "src": "20499:7:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7745,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "20480:27:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "hexvalue": "30",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0"
                                                                                        },
                                                                                        "id": 7746,
                                                                                        "name": "Literal",
                                                                                        "src": "20508:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7747,
                                                                                "name": "IndexAccess",
                                                                                "src": "20480:30:18"
                                                                            }
                                                                        ],
                                                                        "id": 7748,
                                                                        "name": "MemberAccess",
                                                                        "src": "20480:43:18"
                                                                    }
                                                                ],
                                                                "id": 7749,
                                                                "name": "FunctionCall",
                                                                "src": "19949:590:18"
                                                            }
                                                        ],
                                                        "id": 7750,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "19886:653:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "whiteList",
                                                                            "referencedDeclaration": 12121,
                                                                            "type": "function (address,uint256) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract ISecurity",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 12122,
                                                                                            "type": "type(contract ISecurity)",
                                                                                            "value": "ISecurity"
                                                                                        },
                                                                                        "id": 7751,
                                                                                        "name": "Identifier",
                                                                                        "src": "20570:9:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7666,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7752,
                                                                                        "name": "Identifier",
                                                                                        "src": "20580:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7753,
                                                                                "name": "FunctionCall",
                                                                                "src": "20570:19:18"
                                                                            }
                                                                        ],
                                                                        "id": 7754,
                                                                        "name": "MemberAccess",
                                                                        "src": "20570:29:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6392,
                                                                            "type": "address",
                                                                            "value": "vault"
                                                                        },
                                                                        "id": 7755,
                                                                        "name": "Identifier",
                                                                        "src": "20600:5:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7697,
                                                                            "type": "uint256",
                                                                            "value": "securityAmount"
                                                                        },
                                                                        "id": 7756,
                                                                        "name": "Identifier",
                                                                        "src": "20607:14:18"
                                                                    }
                                                                ],
                                                                "id": 7757,
                                                                "name": "FunctionCall",
                                                                "src": "20570:52:18"
                                                            }
                                                        ],
                                                        "id": 7758,
                                                        "name": "ExpressionStatement",
                                                        "src": "20570:52:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                7760
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "newIssue",
                                                                    "scope": 7840,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "address",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "nonpayable",
                                                                            "type": "address"
                                                                        },
                                                                        "id": 7759,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "20638:7:18"
                                                                    }
                                                                ],
                                                                "id": 7760,
                                                                "name": "VariableDeclaration",
                                                                "src": "20638:16:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "address",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_struct$_FactoryPoolParams_$12040_memory_ptr",
                                                                                    "typeString": "struct IPrimaryIssuePoolFactory.FactoryPoolParams memory"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "create",
                                                                            "referencedDeclaration": 12047,
                                                                            "type": "function (struct IPrimaryIssuePoolFactory.FactoryPoolParams memory) external returns (address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IPrimaryIssuePoolFactory",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 12048,
                                                                                            "type": "type(contract IPrimaryIssuePoolFactory)",
                                                                                            "value": "IPrimaryIssuePoolFactory"
                                                                                        },
                                                                                        "id": 7761,
                                                                                        "name": "Identifier",
                                                                                        "src": "20657:24:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6390,
                                                                                            "type": "address",
                                                                                            "value": "factory"
                                                                                        },
                                                                                        "id": 7762,
                                                                                        "name": "Identifier",
                                                                                        "src": "20682:7:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7763,
                                                                                "name": "FunctionCall",
                                                                                "src": "20657:33:18"
                                                                            }
                                                                        ],
                                                                        "id": 7764,
                                                                        "name": "MemberAccess",
                                                                        "src": "20657:40:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7717,
                                                                            "type": "struct IPrimaryIssuePoolFactory.FactoryPoolParams memory",
                                                                            "value": "poolparams"
                                                                        },
                                                                        "id": 7765,
                                                                        "name": "Identifier",
                                                                        "src": "20698:10:18"
                                                                    }
                                                                ],
                                                                "id": 7766,
                                                                "name": "FunctionCall",
                                                                "src": "20657:52:18"
                                                            }
                                                        ],
                                                        "id": 7767,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "20638:71:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "issuer",
                                                                            "referencedDeclaration": 11702,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.primary storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6567,
                                                                                            "type": "mapping(address => struct IMarketMaker.primary storage ref)",
                                                                                            "value": "issues"
                                                                                        },
                                                                                        "id": 7768,
                                                                                        "name": "Identifier",
                                                                                        "src": "20776:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7666,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7769,
                                                                                        "name": "Identifier",
                                                                                        "src": "20783:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7770,
                                                                                "name": "IndexAccess",
                                                                                "src": "20776:16:18"
                                                                            }
                                                                        ],
                                                                        "id": 7771,
                                                                        "name": "MemberAccess",
                                                                        "src": "20776:23:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "owner",
                                                                            "referencedDeclaration": 11660,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.token storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6531,
                                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                                            "value": "mmtokens"
                                                                                                        },
                                                                                                        "id": 7772,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "20802:8:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7666,
                                                                                                            "type": "address",
                                                                                                            "value": "security"
                                                                                                        },
                                                                                                        "id": 7773,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "20811:8:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 7774,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "20802:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7689,
                                                                                                    "type": "address",
                                                                                                    "value": "lptoken"
                                                                                                },
                                                                                                "id": 7775,
                                                                                                "name": "Identifier",
                                                                                                "src": "20821:7:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7776,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "20802:27:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "hexvalue": "30",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0"
                                                                                        },
                                                                                        "id": 7777,
                                                                                        "name": "Literal",
                                                                                        "src": "20830:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7778,
                                                                                "name": "IndexAccess",
                                                                                "src": "20802:30:18"
                                                                            }
                                                                        ],
                                                                        "id": 7779,
                                                                        "name": "MemberAccess",
                                                                        "src": "20802:36:18"
                                                                    }
                                                                ],
                                                                "id": 7780,
                                                                "name": "Assignment",
                                                                "src": "20776:62:18"
                                                            }
                                                        ],
                                                        "id": 7781,
                                                        "name": "ExpressionStatement",
                                                        "src": "20776:62:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "deadline",
                                                                            "referencedDeclaration": 11697,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.primary storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6567,
                                                                                            "type": "mapping(address => struct IMarketMaker.primary storage ref)",
                                                                                            "value": "issues"
                                                                                        },
                                                                                        "id": 7782,
                                                                                        "name": "Identifier",
                                                                                        "src": "20853:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7666,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7783,
                                                                                        "name": "Identifier",
                                                                                        "src": "20860:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7784,
                                                                                "name": "IndexAccess",
                                                                                "src": "20853:16:18"
                                                                            }
                                                                        ],
                                                                        "id": 7785,
                                                                        "name": "MemberAccess",
                                                                        "src": "20853:25:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7668,
                                                                            "type": "uint256",
                                                                            "value": "cutoffTime"
                                                                        },
                                                                        "id": 7786,
                                                                        "name": "Identifier",
                                                                        "src": "20881:10:18"
                                                                    }
                                                                ],
                                                                "id": 7787,
                                                                "name": "Assignment",
                                                                "src": "20853:38:18"
                                                            }
                                                        ],
                                                        "id": 7788,
                                                        "name": "ExpressionStatement",
                                                        "src": "20853:38:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                7790
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "pool",
                                                                    "scope": 7840,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "type": "bytes32",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "bytes32",
                                                                            "type": "bytes32"
                                                                        },
                                                                        "id": 7789,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "20906:7:18"
                                                                    }
                                                                ],
                                                                "id": 7790,
                                                                "name": "VariableDeclaration",
                                                                "src": "20906:12:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "arguments": [
                                                                        null
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "bytes32",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                null
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getPoolId",
                                                                            "referencedDeclaration": 11985,
                                                                            "type": "function () view external returns (bytes32)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IPrimaryIssuePool",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 12016,
                                                                                            "type": "type(contract IPrimaryIssuePool)",
                                                                                            "value": "IPrimaryIssuePool"
                                                                                        },
                                                                                        "id": 7791,
                                                                                        "name": "Identifier",
                                                                                        "src": "20921:17:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7760,
                                                                                            "type": "address",
                                                                                            "value": "newIssue"
                                                                                        },
                                                                                        "id": 7792,
                                                                                        "name": "Identifier",
                                                                                        "src": "20939:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7793,
                                                                                "name": "FunctionCall",
                                                                                "src": "20921:27:18"
                                                                            }
                                                                        ],
                                                                        "id": 7794,
                                                                        "name": "MemberAccess",
                                                                        "src": "20921:37:18"
                                                                    }
                                                                ],
                                                                "id": 7795,
                                                                "name": "FunctionCall",
                                                                "src": "20921:39:18"
                                                            }
                                                        ],
                                                        "id": 7796,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "20906:54:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "push",
                                                                            "type": "function (bytes32)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "pools",
                                                                                    "referencedDeclaration": 11700,
                                                                                    "type": "bytes32[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.primary storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6567,
                                                                                                    "type": "mapping(address => struct IMarketMaker.primary storage ref)",
                                                                                                    "value": "issues"
                                                                                                },
                                                                                                "id": 7797,
                                                                                                "name": "Identifier",
                                                                                                "src": "20991:6:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7666,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 7798,
                                                                                                "name": "Identifier",
                                                                                                "src": "20998:8:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7799,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "20991:16:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7800,
                                                                                "name": "MemberAccess",
                                                                                "src": "20991:22:18"
                                                                            }
                                                                        ],
                                                                        "id": 7801,
                                                                        "name": "MemberAccess",
                                                                        "src": "20991:27:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7790,
                                                                            "type": "bytes32",
                                                                            "value": "pool"
                                                                        },
                                                                        "id": 7802,
                                                                        "name": "Identifier",
                                                                        "src": "21019:4:18"
                                                                    }
                                                                ],
                                                                "id": 7803,
                                                                "name": "FunctionCall",
                                                                "src": "20991:33:18"
                                                            }
                                                        ],
                                                        "id": 7804,
                                                        "name": "ExpressionStatement",
                                                        "src": "20991:33:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6588,
                                                                                    "type": "mapping(bytes32 => address)",
                                                                                    "value": "pools"
                                                                                },
                                                                                "id": 7805,
                                                                                "name": "Identifier",
                                                                                "src": "21039:5:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7790,
                                                                                    "type": "bytes32",
                                                                                    "value": "pool"
                                                                                },
                                                                                "id": 7806,
                                                                                "name": "Identifier",
                                                                                "src": "21045:4:18"
                                                                            }
                                                                        ],
                                                                        "id": 7807,
                                                                        "name": "IndexAccess",
                                                                        "src": "21039:11:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7760,
                                                                            "type": "address",
                                                                            "value": "newIssue"
                                                                        },
                                                                        "id": 7808,
                                                                        "name": "Identifier",
                                                                        "src": "21053:8:18"
                                                                    }
                                                                ],
                                                                "id": 7809,
                                                                "name": "Assignment",
                                                                "src": "21039:22:18"
                                                            }
                                                        ],
                                                        "id": 7810,
                                                        "name": "ExpressionStatement",
                                                        "src": "21039:22:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6592,
                                                                                    "type": "mapping(bytes32 => address)",
                                                                                    "value": "poolSecurity"
                                                                                },
                                                                                "id": 7811,
                                                                                "name": "Identifier",
                                                                                "src": "21076:12:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7790,
                                                                                    "type": "bytes32",
                                                                                    "value": "pool"
                                                                                },
                                                                                "id": 7812,
                                                                                "name": "Identifier",
                                                                                "src": "21089:4:18"
                                                                            }
                                                                        ],
                                                                        "id": 7813,
                                                                        "name": "IndexAccess",
                                                                        "src": "21076:18:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7666,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 7814,
                                                                        "name": "Identifier",
                                                                        "src": "21097:8:18"
                                                                    }
                                                                ],
                                                                "id": 7815,
                                                                "name": "Assignment",
                                                                "src": "21076:29:18"
                                                            }
                                                        ],
                                                        "id": 7816,
                                                        "name": "ExpressionStatement",
                                                        "src": "21076:29:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7977,
                                                                            "type": "function (bytes32,address,address,uint256,uint256)",
                                                                            "value": "joinPool"
                                                                        },
                                                                        "id": 7817,
                                                                        "name": "Identifier",
                                                                        "src": "21158:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7790,
                                                                            "type": "bytes32",
                                                                            "value": "pool"
                                                                        },
                                                                        "id": 7818,
                                                                        "name": "Identifier",
                                                                        "src": "21167:4:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7666,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 7819,
                                                                        "name": "Identifier",
                                                                        "src": "21173:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7689,
                                                                            "type": "address",
                                                                            "value": "lptoken"
                                                                        },
                                                                        "id": 7820,
                                                                        "name": "Identifier",
                                                                        "src": "21183:7:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7697,
                                                                            "type": "uint256",
                                                                            "value": "securityAmount"
                                                                        },
                                                                        "id": 7821,
                                                                        "name": "Identifier",
                                                                        "src": "21192:14:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7706,
                                                                            "type": "uint256",
                                                                            "value": "cashAmount"
                                                                        },
                                                                        "id": 7822,
                                                                        "name": "Identifier",
                                                                        "src": "21208:10:18"
                                                                    }
                                                                ],
                                                                "id": 7823,
                                                                "name": "FunctionCall",
                                                                "src": "21158:61:18"
                                                            }
                                                        ],
                                                        "id": 7824,
                                                        "name": "ExpressionStatement",
                                                        "src": "21158:61:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "delete",
                                                                    "prefix": true,
                                                                    "type": "tuple()"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "struct IMarketMaker.liquidity storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => struct IMarketMaker.liquidity storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6548,
                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.liquidity storage ref))",
                                                                                            "value": "qlTokens"
                                                                                        },
                                                                                        "id": 7825,
                                                                                        "name": "Identifier",
                                                                                        "src": "21241:8:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7666,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7826,
                                                                                        "name": "Identifier",
                                                                                        "src": "21250:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7827,
                                                                                "name": "IndexAccess",
                                                                                "src": "21241:18:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7689,
                                                                                    "type": "address",
                                                                                    "value": "lptoken"
                                                                                },
                                                                                "id": 7828,
                                                                                "name": "Identifier",
                                                                                "src": "21260:7:18"
                                                                            }
                                                                        ],
                                                                        "id": 7829,
                                                                        "name": "IndexAccess",
                                                                        "src": "21241:27:18"
                                                                    }
                                                                ],
                                                                "id": 7830,
                                                                "name": "UnaryOperation",
                                                                "src": "21234:34:18"
                                                            }
                                                        ],
                                                        "id": 7831,
                                                        "name": "ExpressionStatement",
                                                        "src": "21234:34:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6542,
                                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                                            "value": "pairedTokenIndex"
                                                                                        },
                                                                                        "id": 7832,
                                                                                        "name": "Identifier",
                                                                                        "src": "21283:16:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7666,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 7833,
                                                                                        "name": "Identifier",
                                                                                        "src": "21300:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7835,
                                                                                "name": "IndexAccess",
                                                                                "src": "21283:26:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7689,
                                                                                    "type": "address",
                                                                                    "value": "lptoken"
                                                                                },
                                                                                "id": 7834,
                                                                                "name": "Identifier",
                                                                                "src": "21310:7:18"
                                                                            }
                                                                        ],
                                                                        "id": 7836,
                                                                        "name": "IndexAccess",
                                                                        "src": "21283:35:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 7837,
                                                                        "name": "Literal",
                                                                        "src": "21319:1:18"
                                                                    }
                                                                ],
                                                                "id": 7838,
                                                                "name": "Assignment",
                                                                "src": "21283:37:18"
                                                            }
                                                        ],
                                                        "id": 7839,
                                                        "name": "ExpressionStatement",
                                                        "src": "21283:37:18"
                                                    }
                                                ],
                                                "id": 7840,
                                                "name": "Block",
                                                "src": "19644:1688:18"
                                            }
                                        ],
                                        "id": 7841,
                                        "name": "ForStatement",
                                        "src": "19609:1723:18"
                                    }
                                ],
                                "id": 7842,
                                "name": "Block",
                                "src": "19468:1871:18"
                            }
                        ],
                        "id": 7843,
                        "name": "FunctionDefinition",
                        "src": "19401:1938:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "joinPool",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "pool",
                                            "scope": 7977,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 7844,
                                                "name": "ElementaryTypeName",
                                                "src": "21369:7:18"
                                            }
                                        ],
                                        "id": 7845,
                                        "name": "VariableDeclaration",
                                        "src": "21369:12:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 7977,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7846,
                                                "name": "ElementaryTypeName",
                                                "src": "21383:7:18"
                                            }
                                        ],
                                        "id": 7847,
                                        "name": "VariableDeclaration",
                                        "src": "21383:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "lptoken",
                                            "scope": 7977,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7848,
                                                "name": "ElementaryTypeName",
                                                "src": "21401:7:18"
                                            }
                                        ],
                                        "id": 7849,
                                        "name": "VariableDeclaration",
                                        "src": "21401:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "securityAmount",
                                            "scope": 7977,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7850,
                                                "name": "ElementaryTypeName",
                                                "src": "21418:7:18"
                                            }
                                        ],
                                        "id": 7851,
                                        "name": "VariableDeclaration",
                                        "src": "21418:22:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "cashAmount",
                                            "scope": 7977,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7852,
                                                "name": "ElementaryTypeName",
                                                "src": "21442:7:18"
                                            }
                                        ],
                                        "id": 7853,
                                        "name": "VariableDeclaration",
                                        "src": "21442:18:18"
                                    }
                                ],
                                "id": 7854,
                                "name": "ParameterList",
                                "src": "21368:93:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 7855,
                                "name": "ParameterList",
                                "src": "21470:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7859,
                                                null,
                                                null
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "tokens",
                                                    "scope": 7976,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "contract IERC20[]",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "type": "contract IERC20[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "IERC20",
                                                                    "referencedDeclaration": 2938,
                                                                    "type": "contract IERC20"
                                                                },
                                                                "id": 7857,
                                                                "name": "UserDefinedTypeName",
                                                                "src": "21482:6:18"
                                                            }
                                                        ],
                                                        "id": 7858,
                                                        "name": "ArrayTypeName",
                                                        "src": "21482:8:18"
                                                    }
                                                ],
                                                "id": 7859,
                                                "name": "VariableDeclaration",
                                                "src": "21482:22:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple(contract IERC20[] memory,uint256[] memory,uint256)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getPoolTokens",
                                                            "referencedDeclaration": 3444,
                                                            "type": "function (bytes32) view external returns (contract IERC20[] memory,uint256[] memory,uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IVault",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3688,
                                                                            "type": "type(contract IVault)",
                                                                            "value": "IVault"
                                                                        },
                                                                        "id": 7860,
                                                                        "name": "Identifier",
                                                                        "src": "21512:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6392,
                                                                            "type": "address",
                                                                            "value": "vault"
                                                                        },
                                                                        "id": 7861,
                                                                        "name": "Identifier",
                                                                        "src": "21519:5:18"
                                                                    }
                                                                ],
                                                                "id": 7862,
                                                                "name": "FunctionCall",
                                                                "src": "21512:13:18"
                                                            }
                                                        ],
                                                        "id": 7863,
                                                        "name": "MemberAccess",
                                                        "src": "21512:27:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7845,
                                                            "type": "bytes32",
                                                            "value": "pool"
                                                        },
                                                        "id": 7864,
                                                        "name": "Identifier",
                                                        "src": "21540:4:18"
                                                    }
                                                ],
                                                "id": 7865,
                                                "name": "FunctionCall",
                                                "src": "21512:33:18"
                                            }
                                        ],
                                        "id": 7866,
                                        "name": "VariableDeclarationStatement",
                                        "src": "21481:64:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7870
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "assets",
                                                    "scope": 7976,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "contract IAsset[]",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "type": "contract IAsset[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "IAsset",
                                                                    "referencedDeclaration": 3127,
                                                                    "type": "contract IAsset"
                                                                },
                                                                "id": 7868,
                                                                "name": "UserDefinedTypeName",
                                                                "src": "21556:6:18"
                                                            }
                                                        ],
                                                        "id": 7869,
                                                        "name": "ArrayTypeName",
                                                        "src": "21556:8:18"
                                                    }
                                                ],
                                                "id": 7870,
                                                "name": "VariableDeclaration",
                                                "src": "21556:22:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "contract IAsset[] memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                    "typeString": "contract IERC20[] memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9213,
                                                            "type": "function (contract IERC20[] memory) pure returns (contract IAsset[] memory)",
                                                            "value": "_convertERC20sToAssets"
                                                        },
                                                        "id": 7871,
                                                        "name": "Identifier",
                                                        "src": "21581:22:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7859,
                                                            "type": "contract IERC20[] memory",
                                                            "value": "tokens"
                                                        },
                                                        "id": 7872,
                                                        "name": "Identifier",
                                                        "src": "21604:6:18"
                                                    }
                                                ],
                                                "id": 7873,
                                                "name": "FunctionCall",
                                                "src": "21581:30:18"
                                            }
                                        ],
                                        "id": 7874,
                                        "name": "VariableDeclarationStatement",
                                        "src": "21556:55:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7879
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "maxAmountsIn",
                                                    "scope": 7976,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "uint256[]",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "type": "uint256[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint256",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 7877,
                                                                "name": "ElementaryTypeName",
                                                                "src": "21622:7:18"
                                                            }
                                                        ],
                                                        "id": 7878,
                                                        "name": "ArrayTypeName",
                                                        "src": "21622:9:18"
                                                    }
                                                ],
                                                "id": 7879,
                                                "name": "VariableDeclaration",
                                                "src": "21622:29:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256[] memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "type": "function (uint256) pure returns (uint256[] memory)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "type": "uint256[]"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint256",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 7880,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "21658:7:18"
                                                                    }
                                                                ],
                                                                "id": 7881,
                                                                "name": "ArrayTypeName",
                                                                "src": "21658:9:18"
                                                            }
                                                        ],
                                                        "id": 7882,
                                                        "name": "NewExpression",
                                                        "src": "21654:13:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7859,
                                                                    "type": "contract IERC20[] memory",
                                                                    "value": "tokens"
                                                                },
                                                                "id": 7883,
                                                                "name": "Identifier",
                                                                "src": "21668:6:18"
                                                            }
                                                        ],
                                                        "id": 7884,
                                                        "name": "MemberAccess",
                                                        "src": "21668:13:18"
                                                    }
                                                ],
                                                "id": 7885,
                                                "name": "FunctionCall",
                                                "src": "21654:28:18"
                                            }
                                        ],
                                        "id": 7886,
                                        "name": "VariableDeclarationStatement",
                                        "src": "21622:60:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "approve",
                                                            "referencedDeclaration": 2543,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2860,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 7887,
                                                                        "name": "Identifier",
                                                                        "src": "21709:5:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7849,
                                                                            "type": "address",
                                                                            "value": "lptoken"
                                                                        },
                                                                        "id": 7888,
                                                                        "name": "Identifier",
                                                                        "src": "21715:7:18"
                                                                    }
                                                                ],
                                                                "id": 7889,
                                                                "name": "FunctionCall",
                                                                "src": "21709:14:18"
                                                            }
                                                        ],
                                                        "id": 7890,
                                                        "name": "MemberAccess",
                                                        "src": "21709:22:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6392,
                                                            "type": "address",
                                                            "value": "vault"
                                                        },
                                                        "id": 7891,
                                                        "name": "Identifier",
                                                        "src": "21732:5:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7853,
                                                            "type": "uint256",
                                                            "value": "cashAmount"
                                                        },
                                                        "id": 7892,
                                                        "name": "Identifier",
                                                        "src": "21739:10:18"
                                                    }
                                                ],
                                                "id": 7893,
                                                "name": "FunctionCall",
                                                "src": "21709:41:18"
                                            }
                                        ],
                                        "id": 7894,
                                        "name": "ExpressionStatement",
                                        "src": "21709:41:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "approve",
                                                            "referencedDeclaration": 2543,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2860,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 7895,
                                                                        "name": "Identifier",
                                                                        "src": "21761:5:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7847,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 7896,
                                                                        "name": "Identifier",
                                                                        "src": "21767:8:18"
                                                                    }
                                                                ],
                                                                "id": 7897,
                                                                "name": "FunctionCall",
                                                                "src": "21761:15:18"
                                                            }
                                                        ],
                                                        "id": 7898,
                                                        "name": "MemberAccess",
                                                        "src": "21761:23:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6392,
                                                            "type": "address",
                                                            "value": "vault"
                                                        },
                                                        "id": 7899,
                                                        "name": "Identifier",
                                                        "src": "21785:5:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7851,
                                                            "type": "uint256",
                                                            "value": "securityAmount"
                                                        },
                                                        "id": 7900,
                                                        "name": "Identifier",
                                                        "src": "21792:14:18"
                                                    }
                                                ],
                                                "id": 7901,
                                                "name": "FunctionCall",
                                                "src": "21761:46:18"
                                            }
                                        ],
                                        "id": 7902,
                                        "name": "ExpressionStatement",
                                        "src": "21761:46:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        7904
                                                    ]
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "mutability": "mutable",
                                                            "name": "t",
                                                            "scope": 7942,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint256",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 7903,
                                                                "name": "ElementaryTypeName",
                                                                "src": "21822:7:18"
                                                            }
                                                        ],
                                                        "id": 7904,
                                                        "name": "VariableDeclaration",
                                                        "src": "21822:9:18"
                                                    }
                                                ],
                                                "id": 7905,
                                                "name": "VariableDeclarationStatement",
                                                "src": "21822:9:18"
                                            },
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7904,
                                                            "type": "uint256",
                                                            "value": "t"
                                                        },
                                                        "id": 7906,
                                                        "name": "Identifier",
                                                        "src": "21833:1:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7859,
                                                                    "type": "contract IERC20[] memory",
                                                                    "value": "tokens"
                                                                },
                                                                "id": 7907,
                                                                "name": "Identifier",
                                                                "src": "21837:6:18"
                                                            }
                                                        ],
                                                        "id": 7908,
                                                        "name": "MemberAccess",
                                                        "src": "21837:13:18"
                                                    }
                                                ],
                                                "id": 7909,
                                                "name": "BinaryOperation",
                                                "src": "21833:17:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7904,
                                                                    "type": "uint256",
                                                                    "value": "t"
                                                                },
                                                                "id": 7910,
                                                                "name": "Identifier",
                                                                "src": "21852:1:18"
                                                            }
                                                        ],
                                                        "id": 7911,
                                                        "name": "UnaryOperation",
                                                        "src": "21852:3:18"
                                                    }
                                                ],
                                                "id": 7912,
                                                "name": "ExpressionStatement",
                                                "src": "21852:3:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                        "typeString": "contract IERC20"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "contract IERC20"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7859,
                                                                                    "type": "contract IERC20[] memory",
                                                                                    "value": "tokens"
                                                                                },
                                                                                "id": 7913,
                                                                                "name": "Identifier",
                                                                                "src": "21875:6:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7904,
                                                                                    "type": "uint256",
                                                                                    "value": "t"
                                                                                },
                                                                                "id": 7914,
                                                                                "name": "Identifier",
                                                                                "src": "21882:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 7915,
                                                                        "name": "IndexAccess",
                                                                        "src": "21875:9:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2938,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 7916,
                                                                                "name": "Identifier",
                                                                                "src": "21886:6:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7847,
                                                                                    "type": "address",
                                                                                    "value": "security"
                                                                                },
                                                                                "id": 7917,
                                                                                "name": "Identifier",
                                                                                "src": "21893:8:18"
                                                                            }
                                                                        ],
                                                                        "id": 7918,
                                                                        "name": "FunctionCall",
                                                                        "src": "21886:16:18"
                                                                    }
                                                                ],
                                                                "id": 7919,
                                                                "name": "BinaryOperation",
                                                                "src": "21875:27:18"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": true,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7879,
                                                                                            "type": "uint256[] memory",
                                                                                            "value": "maxAmountsIn"
                                                                                        },
                                                                                        "id": 7920,
                                                                                        "name": "Identifier",
                                                                                        "src": "21921:12:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7904,
                                                                                            "type": "uint256",
                                                                                            "value": "t"
                                                                                        },
                                                                                        "id": 7921,
                                                                                        "name": "Identifier",
                                                                                        "src": "21934:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7922,
                                                                                "name": "IndexAccess",
                                                                                "src": "21921:15:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7851,
                                                                                    "type": "uint256",
                                                                                    "value": "securityAmount"
                                                                                },
                                                                                "id": 7923,
                                                                                "name": "Identifier",
                                                                                "src": "21939:14:18"
                                                                            }
                                                                        ],
                                                                        "id": 7924,
                                                                        "name": "Assignment",
                                                                        "src": "21921:32:18"
                                                                    }
                                                                ],
                                                                "id": 7925,
                                                                "name": "ExpressionStatement",
                                                                "src": "21921:32:18"
                                                            },
                                                            {
                                                                "attributes": {},
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                "typeString": "contract IERC20"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "==",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "contract IERC20"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7859,
                                                                                            "type": "contract IERC20[] memory",
                                                                                            "value": "tokens"
                                                                                        },
                                                                                        "id": 7926,
                                                                                        "name": "Identifier",
                                                                                        "src": "21976:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7904,
                                                                                            "type": "uint256",
                                                                                            "value": "t"
                                                                                        },
                                                                                        "id": 7927,
                                                                                        "name": "Identifier",
                                                                                        "src": "21983:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7928,
                                                                                "name": "IndexAccess",
                                                                                "src": "21976:9:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2938,
                                                                                            "type": "type(contract IERC20)",
                                                                                            "value": "IERC20"
                                                                                        },
                                                                                        "id": 7929,
                                                                                        "name": "Identifier",
                                                                                        "src": "21987:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7849,
                                                                                            "type": "address",
                                                                                            "value": "lptoken"
                                                                                        },
                                                                                        "id": 7930,
                                                                                        "name": "Identifier",
                                                                                        "src": "21994:7:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7931,
                                                                                "name": "FunctionCall",
                                                                                "src": "21987:15:18"
                                                                            }
                                                                        ],
                                                                        "id": 7932,
                                                                        "name": "BinaryOperation",
                                                                        "src": "21976:26:18"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7879,
                                                                                                    "type": "uint256[] memory",
                                                                                                    "value": "maxAmountsIn"
                                                                                                },
                                                                                                "id": 7933,
                                                                                                "name": "Identifier",
                                                                                                "src": "22021:12:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7904,
                                                                                                    "type": "uint256",
                                                                                                    "value": "t"
                                                                                                },
                                                                                                "id": 7934,
                                                                                                "name": "Identifier",
                                                                                                "src": "22034:1:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 7935,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "22021:15:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7853,
                                                                                            "type": "uint256",
                                                                                            "value": "cashAmount"
                                                                                        },
                                                                                        "id": 7936,
                                                                                        "name": "Identifier",
                                                                                        "src": "22039:10:18"
                                                                                    }
                                                                                ],
                                                                                "id": 7937,
                                                                                "name": "Assignment",
                                                                                "src": "22021:28:18"
                                                                            }
                                                                        ],
                                                                        "id": 7938,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "22021:28:18"
                                                                    }
                                                                ],
                                                                "id": 7939,
                                                                "name": "IfStatement",
                                                                "src": "21973:76:18"
                                                            }
                                                        ],
                                                        "id": 7940,
                                                        "name": "IfStatement",
                                                        "src": "21872:177:18"
                                                    }
                                                ],
                                                "id": 7941,
                                                "name": "Block",
                                                "src": "21857:315:18"
                                            }
                                        ],
                                        "id": 7942,
                                        "name": "ForStatement",
                                        "src": "21818:354:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                7946
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "request",
                                                    "scope": 7976,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "struct IVault.JoinPoolRequest",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IVault.JoinPoolRequest",
                                                            "referencedDeclaration": 3467,
                                                            "type": "struct IVault.JoinPoolRequest"
                                                        },
                                                        "id": 7945,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "22182:22:18"
                                                    }
                                                ],
                                                "id": 7946,
                                                "name": "VariableDeclaration",
                                                "src": "22182:37:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": true,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        "assets",
                                                        "maxAmountsIn",
                                                        "userData",
                                                        "fromInternalBalance"
                                                    ],
                                                    "tryCall": false,
                                                    "type": "struct IVault.JoinPoolRequest memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                                    "typeString": "contract IAsset[] memory"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                    "typeString": "uint256[] memory"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                    "typeString": "bytes memory"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "JoinPoolRequest",
                                                            "referencedDeclaration": 3467,
                                                            "type": "type(struct IVault.JoinPoolRequest storage pointer)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3688,
                                                                    "type": "type(contract IVault)",
                                                                    "value": "IVault"
                                                                },
                                                                "id": 7947,
                                                                "name": "Identifier",
                                                                "src": "22222:6:18"
                                                            }
                                                        ],
                                                        "id": 7948,
                                                        "name": "MemberAccess",
                                                        "src": "22222:22:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7870,
                                                            "type": "contract IAsset[] memory",
                                                            "value": "assets"
                                                        },
                                                        "id": 7949,
                                                        "name": "Identifier",
                                                        "src": "22268:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7879,
                                                            "type": "uint256[] memory",
                                                            "value": "maxAmountsIn"
                                                        },
                                                        "id": 7950,
                                                        "name": "Identifier",
                                                        "src": "22303:12:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bytes memory",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_enum$_JoinKind_$11655",
                                                                            "typeString": "enum IMarketMaker.JoinKind"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                            "typeString": "uint256[] memory"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "member_name": "encode",
                                                                    "type": "function () pure returns (bytes memory)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -1,
                                                                            "type": "abi",
                                                                            "value": "abi"
                                                                        },
                                                                        "id": 7951,
                                                                        "name": "Identifier",
                                                                        "src": "22340:3:18"
                                                                    }
                                                                ],
                                                                "id": 7952,
                                                                "name": "MemberAccess",
                                                                "src": "22340:10:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "member_name": "INIT",
                                                                    "type": "enum IMarketMaker.JoinKind"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 11655,
                                                                            "type": "type(enum IMarketMaker.JoinKind)",
                                                                            "value": "JoinKind"
                                                                        },
                                                                        "id": 7953,
                                                                        "name": "Identifier",
                                                                        "src": "22351:8:18"
                                                                    }
                                                                ],
                                                                "id": 7954,
                                                                "name": "MemberAccess",
                                                                "src": "22351:13:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7879,
                                                                    "type": "uint256[] memory",
                                                                    "value": "maxAmountsIn"
                                                                },
                                                                "id": 7955,
                                                                "name": "Identifier",
                                                                "src": "22366:12:18"
                                                            }
                                                        ],
                                                        "id": 7956,
                                                        "name": "FunctionCall",
                                                        "src": "22340:39:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 7957,
                                                        "name": "Literal",
                                                        "src": "22415:5:18"
                                                    }
                                                ],
                                                "id": 7958,
                                                "name": "FunctionCall",
                                                "src": "22222:210:18"
                                            }
                                        ],
                                        "id": 7959,
                                        "name": "VariableDeclarationStatement",
                                        "src": "22182:250:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                                                    "typeString": "struct IVault.JoinPoolRequest memory"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "joinPool",
                                                            "referencedDeclaration": 3456,
                                                            "type": "function (bytes32,address,address,struct IVault.JoinPoolRequest memory) payable external"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IVault",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3688,
                                                                            "type": "type(contract IVault)",
                                                                            "value": "IVault"
                                                                        },
                                                                        "id": 7960,
                                                                        "name": "Identifier",
                                                                        "src": "22452:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6392,
                                                                            "type": "address",
                                                                            "value": "vault"
                                                                        },
                                                                        "id": 7961,
                                                                        "name": "Identifier",
                                                                        "src": "22459:5:18"
                                                                    }
                                                                ],
                                                                "id": 7962,
                                                                "name": "FunctionCall",
                                                                "src": "22452:13:18"
                                                            }
                                                        ],
                                                        "id": 7963,
                                                        "name": "MemberAccess",
                                                        "src": "22452:22:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7845,
                                                            "type": "bytes32",
                                                            "value": "pool"
                                                        },
                                                        "id": 7964,
                                                        "name": "Identifier",
                                                        "src": "22475:4:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                            "typeString": "contract PrimaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 7965,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "22481:7:18"
                                                                    }
                                                                ],
                                                                "id": 7966,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "22481:7:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract PrimaryIssueManager",
                                                                    "value": "this"
                                                                },
                                                                "id": 7967,
                                                                "name": "Identifier",
                                                                "src": "22489:4:18"
                                                            }
                                                        ],
                                                        "id": 7968,
                                                        "name": "FunctionCall",
                                                        "src": "22481:13:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                            "typeString": "contract PrimaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 7969,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "22496:7:18"
                                                                    }
                                                                ],
                                                                "id": 7970,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "22496:7:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract PrimaryIssueManager",
                                                                    "value": "this"
                                                                },
                                                                "id": 7971,
                                                                "name": "Identifier",
                                                                "src": "22504:4:18"
                                                            }
                                                        ],
                                                        "id": 7972,
                                                        "name": "FunctionCall",
                                                        "src": "22496:13:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7946,
                                                            "type": "struct IVault.JoinPoolRequest memory",
                                                            "value": "request"
                                                        },
                                                        "id": 7973,
                                                        "name": "Identifier",
                                                        "src": "22511:7:18"
                                                    }
                                                ],
                                                "id": 7974,
                                                "name": "FunctionCall",
                                                "src": "22452:67:18"
                                            }
                                        ],
                                        "id": 7975,
                                        "name": "ExpressionStatement",
                                        "src": "22452:67:18"
                                    }
                                ],
                                "id": 7976,
                                "name": "Block",
                                "src": "21470:1057:18"
                            }
                        ],
                        "id": 7977,
                        "name": "FunctionDefinition",
                        "src": "21351:1176:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11798
                            ],
                            "functionSelector": "8ac316f1",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "subscribe",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 7993,
                                "name": "OverrideSpecifier",
                                "src": "22762:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 8225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 7978,
                                                "name": "ElementaryTypeName",
                                                "src": "22648:7:18"
                                            }
                                        ],
                                        "id": 7979,
                                        "name": "VariableDeclaration",
                                        "src": "22648:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 8225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7980,
                                                "name": "ElementaryTypeName",
                                                "src": "22664:7:18"
                                            }
                                        ],
                                        "id": 7981,
                                        "name": "VariableDeclaration",
                                        "src": "22664:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "asset",
                                            "scope": 8225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7982,
                                                "name": "ElementaryTypeName",
                                                "src": "22682:7:18"
                                            }
                                        ],
                                        "id": 7983,
                                        "name": "VariableDeclaration",
                                        "src": "22682:13:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "cAmount",
                                            "scope": 8225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7984,
                                                "name": "ElementaryTypeName",
                                                "src": "22697:7:18"
                                            }
                                        ],
                                        "id": 7985,
                                        "name": "VariableDeclaration",
                                        "src": "22697:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "investor",
                                            "scope": 8225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 7986,
                                                "name": "ElementaryTypeName",
                                                "src": "22714:7:18"
                                            }
                                        ],
                                        "id": 7987,
                                        "name": "VariableDeclaration",
                                        "src": "22714:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "sAmount",
                                            "scope": 8225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 7988,
                                                "name": "ElementaryTypeName",
                                                "src": "22732:7:18"
                                            }
                                        ],
                                        "id": 7989,
                                        "name": "VariableDeclaration",
                                        "src": "22732:15:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "paidIn",
                                            "scope": 8225,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bool",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bool",
                                                    "type": "bool"
                                                },
                                                "id": 7990,
                                                "name": "ElementaryTypeName",
                                                "src": "22749:4:18"
                                            }
                                        ],
                                        "id": 7991,
                                        "name": "VariableDeclaration",
                                        "src": "22749:11:18"
                                    }
                                ],
                                "id": 7992,
                                "name": "ParameterList",
                                "src": "22647:114:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 7999,
                                "name": "ParameterList",
                                "src": "22809:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6433,
                                            "type": "modifier (bytes32,address)",
                                            "value": "onlyPool"
                                        },
                                        "id": 7994,
                                        "name": "Identifier",
                                        "src": "22780:8:18"
                                    },
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 7979,
                                            "type": "bytes32",
                                            "value": "poolId"
                                        },
                                        "id": 7995,
                                        "name": "Identifier",
                                        "src": "22789:6:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 7996,
                                                "name": "Identifier",
                                                "src": "22797:3:18"
                                            }
                                        ],
                                        "id": 7997,
                                        "name": "MemberAccess",
                                        "src": "22797:10:18"
                                    }
                                ],
                                "id": 7998,
                                "name": "ModifierInvocation",
                                "src": "22780:28:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8001
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "index",
                                                    "scope": 8224,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8000,
                                                        "name": "ElementaryTypeName",
                                                        "src": "22820:7:18"
                                                    }
                                                ],
                                                "id": 8001,
                                                "name": "VariableDeclaration",
                                                "src": "22820:13:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(address => uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6578,
                                                                    "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                    "value": "subscriberIndex"
                                                                },
                                                                "id": 8002,
                                                                "name": "Identifier",
                                                                "src": "22836:15:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7979,
                                                                    "type": "bytes32",
                                                                    "value": "poolId"
                                                                },
                                                                "id": 8003,
                                                                "name": "Identifier",
                                                                "src": "22852:6:18"
                                                            }
                                                        ],
                                                        "id": 8004,
                                                        "name": "IndexAccess",
                                                        "src": "22836:23:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7987,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8005,
                                                        "name": "Identifier",
                                                        "src": "22860:8:18"
                                                    }
                                                ],
                                                "id": 8006,
                                                "name": "IndexAccess",
                                                "src": "22836:33:18"
                                            }
                                        ],
                                        "id": 8007,
                                        "name": "VariableDeclarationStatement",
                                        "src": "22820:49:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8009
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "amount",
                                                    "scope": 8224,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8008,
                                                        "name": "ElementaryTypeName",
                                                        "src": "22880:7:18"
                                                    }
                                                ],
                                                "id": 8009,
                                                "name": "VariableDeclaration",
                                                "src": "22880:14:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9265,
                                                            "type": "function (uint256,uint256) pure returns (uint256)",
                                                            "value": "_downscaleDown"
                                                        },
                                                        "id": 8010,
                                                        "name": "Identifier",
                                                        "src": "22897:14:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7985,
                                                            "type": "uint256",
                                                            "value": "cAmount"
                                                        },
                                                        "id": 8011,
                                                        "name": "Identifier",
                                                        "src": "22912:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9248,
                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                    "value": "_computeScalingFactor"
                                                                },
                                                                "id": 8012,
                                                                "name": "Identifier",
                                                                "src": "22921:21:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 8013,
                                                                        "name": "Identifier",
                                                                        "src": "22943:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 7983,
                                                                            "type": "address",
                                                                            "value": "asset"
                                                                        },
                                                                        "id": 8014,
                                                                        "name": "Identifier",
                                                                        "src": "22950:5:18"
                                                                    }
                                                                ],
                                                                "id": 8015,
                                                                "name": "FunctionCall",
                                                                "src": "22943:13:18"
                                                            }
                                                        ],
                                                        "id": 8016,
                                                        "name": "FunctionCall",
                                                        "src": "22921:36:18"
                                                    }
                                                ],
                                                "id": 8017,
                                                "name": "FunctionCall",
                                                "src": "22897:61:18"
                                            }
                                        ],
                                        "id": 8018,
                                        "name": "VariableDeclarationStatement",
                                        "src": "22880:78:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6644,
                                                            "type": "function (address,bytes32,address,address,uint256,uint256,uint256,bool)",
                                                            "value": "subscribers"
                                                        },
                                                        "id": 8019,
                                                        "name": "Identifier",
                                                        "src": "22974:11:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6592,
                                                                    "type": "mapping(bytes32 => address)",
                                                                    "value": "poolSecurity"
                                                                },
                                                                "id": 8020,
                                                                "name": "Identifier",
                                                                "src": "22986:12:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 7979,
                                                                    "type": "bytes32",
                                                                    "value": "poolId"
                                                                },
                                                                "id": 8021,
                                                                "name": "Identifier",
                                                                "src": "22999:6:18"
                                                            }
                                                        ],
                                                        "id": 8022,
                                                        "name": "IndexAccess",
                                                        "src": "22986:20:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7979,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 8023,
                                                        "name": "Identifier",
                                                        "src": "23008:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7987,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8024,
                                                        "name": "Identifier",
                                                        "src": "23016:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7983,
                                                            "type": "address",
                                                            "value": "asset"
                                                        },
                                                        "id": 8025,
                                                        "name": "Identifier",
                                                        "src": "23026:5:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8009,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 8026,
                                                        "name": "Identifier",
                                                        "src": "23033:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7989,
                                                            "type": "uint256",
                                                            "value": "sAmount"
                                                        },
                                                        "id": 8027,
                                                        "name": "Identifier",
                                                        "src": "23041:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timestamp",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -4,
                                                                    "type": "block",
                                                                    "value": "block"
                                                                },
                                                                "id": 8028,
                                                                "name": "Identifier",
                                                                "src": "23050:5:18"
                                                            }
                                                        ],
                                                        "id": 8029,
                                                        "name": "MemberAccess",
                                                        "src": "23050:15:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 7991,
                                                            "type": "bool",
                                                            "value": "paidIn"
                                                        },
                                                        "id": 8030,
                                                        "name": "Identifier",
                                                        "src": "23067:6:18"
                                                    }
                                                ],
                                                "id": 8031,
                                                "name": "FunctionCall",
                                                "src": "22974:100:18"
                                            }
                                        ],
                                        "id": 8032,
                                        "name": "EmitStatement",
                                        "src": "22969:105:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 7991,
                                                    "type": "bool",
                                                    "value": "paidIn"
                                                },
                                                "id": 8033,
                                                "name": "Identifier",
                                                "src": "23088:6:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6584,
                                                                                            "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                                            "value": "subscribed"
                                                                                        },
                                                                                        "id": 8034,
                                                                                        "name": "Identifier",
                                                                                        "src": "23110:10:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7979,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolId"
                                                                                        },
                                                                                        "id": 8035,
                                                                                        "name": "Identifier",
                                                                                        "src": "23121:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8037,
                                                                                "name": "IndexAccess",
                                                                                "src": "23110:18:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 7983,
                                                                                    "type": "address",
                                                                                    "value": "asset"
                                                                                },
                                                                                "id": 8036,
                                                                                "name": "Identifier",
                                                                                "src": "23129:5:18"
                                                                            }
                                                                        ],
                                                                        "id": 8038,
                                                                        "name": "IndexAccess",
                                                                        "src": "23110:25:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "add",
                                                                                    "referencedDeclaration": 2109,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2367,
                                                                                            "type": "type(library Math)",
                                                                                            "value": "Math"
                                                                                        },
                                                                                        "id": 8039,
                                                                                        "name": "Identifier",
                                                                                        "src": "23138:4:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8040,
                                                                                "name": "MemberAccess",
                                                                                "src": "23138:8:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "mapping(address => uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6584,
                                                                                                    "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                                                    "value": "subscribed"
                                                                                                },
                                                                                                "id": 8041,
                                                                                                "name": "Identifier",
                                                                                                "src": "23147:10:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7979,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "poolId"
                                                                                                },
                                                                                                "id": 8042,
                                                                                                "name": "Identifier",
                                                                                                "src": "23158:6:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8043,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "23147:18:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7983,
                                                                                            "type": "address",
                                                                                            "value": "asset"
                                                                                        },
                                                                                        "id": 8044,
                                                                                        "name": "Identifier",
                                                                                        "src": "23166:5:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8045,
                                                                                "name": "IndexAccess",
                                                                                "src": "23147:25:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8009,
                                                                                    "type": "uint256",
                                                                                    "value": "amount"
                                                                                },
                                                                                "id": 8046,
                                                                                "name": "Identifier",
                                                                                "src": "23174:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8047,
                                                                        "name": "FunctionCall",
                                                                        "src": "23138:43:18"
                                                                    }
                                                                ],
                                                                "id": 8048,
                                                                "name": "Assignment",
                                                                "src": "23110:71:18"
                                                            }
                                                        ],
                                                        "id": 8049,
                                                        "name": "ExpressionStatement",
                                                        "src": "23110:71:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8001,
                                                                            "type": "uint256",
                                                                            "value": "index"
                                                                        },
                                                                        "id": 8050,
                                                                        "name": "Identifier",
                                                                        "src": "23199:5:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 8051,
                                                                        "name": "Literal",
                                                                        "src": "23206:1:18"
                                                                    }
                                                                ],
                                                                "id": 8052,
                                                                "name": "BinaryOperation",
                                                                "src": "23199:8:18"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "assignments": [
                                                                                8056
                                                                            ]
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "constant": false,
                                                                                    "mutability": "mutable",
                                                                                    "name": "subscription",
                                                                                    "scope": 8095,
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "memory",
                                                                                    "type": "struct IMarketMaker.subscriptions",
                                                                                    "visibility": "internal"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "IMarketMaker.subscriptions",
                                                                                            "referencedDeclaration": 11714,
                                                                                            "type": "struct IMarketMaker.subscriptions"
                                                                                        },
                                                                                        "id": 8055,
                                                                                        "name": "UserDefinedTypeName",
                                                                                        "src": "23227:26:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8056,
                                                                                "name": "VariableDeclaration",
                                                                                "src": "23227:46:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": true,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        "investor",
                                                                                        "asset",
                                                                                        "name",
                                                                                        "amount",
                                                                                        "traded"
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "struct IMarketMaker.subscriptions memory",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_string_memory_ptr",
                                                                                                    "typeString": "string memory"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "subscriptions",
                                                                                            "referencedDeclaration": 11714,
                                                                                            "type": "type(struct IMarketMaker.subscriptions storage pointer)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 11881,
                                                                                                    "type": "type(contract IMarketMaker)",
                                                                                                    "value": "IMarketMaker"
                                                                                                },
                                                                                                "id": 8057,
                                                                                                "name": "Identifier",
                                                                                                "src": "23276:12:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8058,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "23276:26:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7987,
                                                                                            "type": "address",
                                                                                            "value": "investor"
                                                                                        },
                                                                                        "id": 8059,
                                                                                        "name": "Identifier",
                                                                                        "src": "23336:8:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7983,
                                                                                            "type": "address",
                                                                                            "value": "asset"
                                                                                        },
                                                                                        "id": 8060,
                                                                                        "name": "Identifier",
                                                                                        "src": "23374:5:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "arguments": [
                                                                                                null
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "string memory",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "name",
                                                                                                    "referencedDeclaration": 2441,
                                                                                                    "type": "function () view external returns (string memory)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "tryCall": false,
                                                                                                            "type": "contract ERC20",
                                                                                                            "type_conversion": true
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2860,
                                                                                                                    "type": "type(contract ERC20)",
                                                                                                                    "value": "ERC20"
                                                                                                                },
                                                                                                                "id": 8061,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23408:5:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 7983,
                                                                                                                    "type": "address",
                                                                                                                    "value": "asset"
                                                                                                                },
                                                                                                                "id": 8062,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23414:5:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8063,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "23408:12:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8064,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "23408:17:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8065,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "23408:19:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8009,
                                                                                            "type": "uint256",
                                                                                            "value": "amount"
                                                                                        },
                                                                                        "id": 8066,
                                                                                        "name": "Identifier",
                                                                                        "src": "23458:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9265,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                                    "value": "_downscaleDown"
                                                                                                },
                                                                                                "id": 8067,
                                                                                                "name": "Identifier",
                                                                                                "src": "23495:14:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7989,
                                                                                                    "type": "uint256",
                                                                                                    "value": "sAmount"
                                                                                                },
                                                                                                "id": 8068,
                                                                                                "name": "Identifier",
                                                                                                "src": "23510:7:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                                    "typeString": "contract IERC20"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9248,
                                                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                                                            "value": "_computeScalingFactor"
                                                                                                        },
                                                                                                        "id": 8069,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "23519:21:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "tryCall": false,
                                                                                                            "type": "contract IERC20",
                                                                                                            "type_conversion": true
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_address",
                                                                                                                            "typeString": "address"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2938,
                                                                                                                    "type": "type(contract IERC20)",
                                                                                                                    "value": "IERC20"
                                                                                                                },
                                                                                                                "id": 8070,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23541:6:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 7981,
                                                                                                                    "type": "address",
                                                                                                                    "value": "security"
                                                                                                                },
                                                                                                                "id": 8071,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23548:8:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8072,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "23541:16:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8073,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "23519:39:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8074,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "23495:64:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8075,
                                                                                "name": "FunctionCall",
                                                                                "src": "23276:303:18"
                                                                            }
                                                                        ],
                                                                        "id": 8076,
                                                                        "name": "VariableDeclarationStatement",
                                                                        "src": "23227:352:18"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "tuple()",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_struct$_subscriptions_$11714_memory_ptr",
                                                                                                    "typeString": "struct IMarketMaker.subscriptions memory"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "push",
                                                                                            "type": "function (struct IMarketMaker.subscriptions storage ref)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6572,
                                                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                                            "value": "investors"
                                                                                                        },
                                                                                                        "id": 8077,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "23598:9:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7979,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 8078,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "23608:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8079,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "23598:17:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8080,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "23598:22:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8056,
                                                                                            "type": "struct IMarketMaker.subscriptions memory",
                                                                                            "value": "subscription"
                                                                                        },
                                                                                        "id": 8081,
                                                                                        "name": "Identifier",
                                                                                        "src": "23621:12:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8082,
                                                                                "name": "FunctionCall",
                                                                                "src": "23598:36:18"
                                                                            }
                                                                        ],
                                                                        "id": 8083,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "23598:36:18"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6578,
                                                                                                            "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                                                            "value": "subscriberIndex"
                                                                                                        },
                                                                                                        "id": 8084,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "23656:15:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7979,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 8085,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "23672:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8087,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "23656:23:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7987,
                                                                                                    "type": "address",
                                                                                                    "value": "investor"
                                                                                                },
                                                                                                "id": 8086,
                                                                                                "name": "Identifier",
                                                                                                "src": "23680:8:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8088,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "23656:33:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "length",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6572,
                                                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                                            "value": "investors"
                                                                                                        },
                                                                                                        "id": 8089,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "23692:9:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7979,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 8090,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "23702:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8091,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "23692:17:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8092,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "23692:24:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8093,
                                                                                "name": "Assignment",
                                                                                "src": "23656:60:18"
                                                                            }
                                                                        ],
                                                                        "id": 8094,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "23656:60:18"
                                                                    }
                                                                ],
                                                                "id": 8095,
                                                                "name": "Block",
                                                                "src": "23208:525:18"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "assignments": [
                                                                                8099
                                                                            ]
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "constant": false,
                                                                                    "mutability": "mutable",
                                                                                    "name": "subscription",
                                                                                    "scope": 8143,
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "storage",
                                                                                    "type": "struct IMarketMaker.subscriptions",
                                                                                    "visibility": "internal"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "IMarketMaker.subscriptions",
                                                                                            "referencedDeclaration": 11714,
                                                                                            "type": "struct IMarketMaker.subscriptions"
                                                                                        },
                                                                                        "id": 8098,
                                                                                        "name": "UserDefinedTypeName",
                                                                                        "src": "23770:26:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8099,
                                                                                "name": "VariableDeclaration",
                                                                                "src": "23770:47:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6572,
                                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                                    "value": "investors"
                                                                                                },
                                                                                                "id": 8100,
                                                                                                "name": "Identifier",
                                                                                                "src": "23820:9:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7979,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "poolId"
                                                                                                },
                                                                                                "id": 8101,
                                                                                                "name": "Identifier",
                                                                                                "src": "23830:6:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8102,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "23820:17:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "-",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8001,
                                                                                                    "type": "uint256",
                                                                                                    "value": "index"
                                                                                                },
                                                                                                "id": 8103,
                                                                                                "name": "Identifier",
                                                                                                "src": "23838:5:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "hexvalue": "31",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "token": "number",
                                                                                                    "type": "int_const 1",
                                                                                                    "value": "1"
                                                                                                },
                                                                                                "id": 8104,
                                                                                                "name": "Literal",
                                                                                                "src": "23844:1:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8105,
                                                                                        "name": "BinaryOperation",
                                                                                        "src": "23838:7:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8106,
                                                                                "name": "IndexAccess",
                                                                                "src": "23820:26:18"
                                                                            }
                                                                        ],
                                                                        "id": 8107,
                                                                        "name": "VariableDeclarationStatement",
                                                                        "src": "23770:76:18"
                                                                    },
                                                                    {
                                                                        "attributes": {},
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "==",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "investor",
                                                                                            "referencedDeclaration": 11705,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8099,
                                                                                                    "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                    "value": "subscription"
                                                                                                },
                                                                                                "id": 8108,
                                                                                                "name": "Identifier",
                                                                                                "src": "23868:12:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8109,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "23868:21:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7987,
                                                                                            "type": "address",
                                                                                            "value": "investor"
                                                                                        },
                                                                                        "id": 8110,
                                                                                        "name": "Identifier",
                                                                                        "src": "23891:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8111,
                                                                                "name": "BinaryOperation",
                                                                                "src": "23868:31:18"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "member_name": "amount",
                                                                                                            "referencedDeclaration": 11711,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8099,
                                                                                                                    "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                                    "value": "subscription"
                                                                                                                },
                                                                                                                "id": 8112,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23923:12:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8114,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "23923:19:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "tryCall": false,
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "add",
                                                                                                                    "referencedDeclaration": 2109,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2367,
                                                                                                                            "type": "type(library Math)",
                                                                                                                            "value": "Math"
                                                                                                                        },
                                                                                                                        "id": 8115,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "23945:4:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8116,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "23945:8:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "amount",
                                                                                                                    "referencedDeclaration": 11711,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8099,
                                                                                                                            "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                                            "value": "subscription"
                                                                                                                        },
                                                                                                                        "id": 8117,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "23954:12:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8118,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "23954:19:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8009,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "amount"
                                                                                                                },
                                                                                                                "id": 8119,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "23975:6:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8120,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "23945:37:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8121,
                                                                                                "name": "Assignment",
                                                                                                "src": "23923:59:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8122,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "23923:59:18"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "member_name": "traded",
                                                                                                            "referencedDeclaration": 11713,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8099,
                                                                                                                    "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                                    "value": "subscription"
                                                                                                                },
                                                                                                                "id": 8123,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "24005:12:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8125,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "24005:19:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "tryCall": false,
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "add",
                                                                                                                    "referencedDeclaration": 2109,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2367,
                                                                                                                            "type": "type(library Math)",
                                                                                                                            "value": "Math"
                                                                                                                        },
                                                                                                                        "id": 8126,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24027:4:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8127,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "24027:8:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "traded",
                                                                                                                    "referencedDeclaration": 11713,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8099,
                                                                                                                            "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                                            "value": "subscription"
                                                                                                                        },
                                                                                                                        "id": 8128,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24036:12:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8129,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "24036:19:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "tryCall": false,
                                                                                                                    "type": "uint256",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 9265,
                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                                                            "value": "_downscaleDown"
                                                                                                                        },
                                                                                                                        "id": 8130,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24057:14:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 7989,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "sAmount"
                                                                                                                        },
                                                                                                                        "id": 8131,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24072:7:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "tryCall": false,
                                                                                                                            "type": "uint256",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                                                            "typeString": "contract IERC20"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 9248,
                                                                                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                                                                                    "value": "_computeScalingFactor"
                                                                                                                                },
                                                                                                                                "id": 8132,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "24081:21:18"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "tryCall": false,
                                                                                                                                    "type": "contract IERC20",
                                                                                                                                    "type_conversion": true
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2938,
                                                                                                                                            "type": "type(contract IERC20)",
                                                                                                                                            "value": "IERC20"
                                                                                                                                        },
                                                                                                                                        "id": 8133,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "24103:6:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 7981,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "security"
                                                                                                                                        },
                                                                                                                                        "id": 8134,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "24110:8:18"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 8135,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "24103:16:18"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 8136,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "24081:39:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8137,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "24057:64:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8138,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "24027:95:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8139,
                                                                                                "name": "Assignment",
                                                                                                "src": "24005:117:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8140,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "24005:117:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8141,
                                                                                "name": "Block",
                                                                                "src": "23900:242:18"
                                                                            }
                                                                        ],
                                                                        "id": 8142,
                                                                        "name": "IfStatement",
                                                                        "src": "23865:277:18"
                                                                    }
                                                                ],
                                                                "id": 8143,
                                                                "name": "Block",
                                                                "src": "23751:406:18"
                                                            }
                                                        ],
                                                        "id": 8144,
                                                        "name": "IfStatement",
                                                        "src": "23196:961:18"
                                                    }
                                                ],
                                                "id": 8145,
                                                "name": "Block",
                                                "src": "23095:1081:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {},
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": ">",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8001,
                                                                            "type": "uint256",
                                                                            "value": "index"
                                                                        },
                                                                        "id": 8146,
                                                                        "name": "Identifier",
                                                                        "src": "24208:5:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 8147,
                                                                        "name": "Literal",
                                                                        "src": "24216:1:18"
                                                                    }
                                                                ],
                                                                "id": 8148,
                                                                "name": "BinaryOperation",
                                                                "src": "24208:9:18"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "assignments": [
                                                                                8152
                                                                            ]
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "constant": false,
                                                                                    "mutability": "mutable",
                                                                                    "name": "subscription",
                                                                                    "scope": 8220,
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "storage",
                                                                                    "type": "struct IMarketMaker.subscriptions",
                                                                                    "visibility": "internal"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "IMarketMaker.subscriptions",
                                                                                            "referencedDeclaration": 11714,
                                                                                            "type": "struct IMarketMaker.subscriptions"
                                                                                        },
                                                                                        "id": 8151,
                                                                                        "name": "UserDefinedTypeName",
                                                                                        "src": "24237:26:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8152,
                                                                                "name": "VariableDeclaration",
                                                                                "src": "24237:47:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6572,
                                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                                    "value": "investors"
                                                                                                },
                                                                                                "id": 8153,
                                                                                                "name": "Identifier",
                                                                                                "src": "24287:9:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7979,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "poolId"
                                                                                                },
                                                                                                "id": 8154,
                                                                                                "name": "Identifier",
                                                                                                "src": "24297:6:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8155,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "24287:17:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "-",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8001,
                                                                                                    "type": "uint256",
                                                                                                    "value": "index"
                                                                                                },
                                                                                                "id": 8156,
                                                                                                "name": "Identifier",
                                                                                                "src": "24305:5:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "hexvalue": "31",
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": true,
                                                                                                    "lValueRequested": false,
                                                                                                    "token": "number",
                                                                                                    "type": "int_const 1",
                                                                                                    "value": "1"
                                                                                                },
                                                                                                "id": 8157,
                                                                                                "name": "Literal",
                                                                                                "src": "24311:1:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8158,
                                                                                        "name": "BinaryOperation",
                                                                                        "src": "24305:7:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8159,
                                                                                "name": "IndexAccess",
                                                                                "src": "24287:26:18"
                                                                            }
                                                                        ],
                                                                        "id": 8160,
                                                                        "name": "VariableDeclarationStatement",
                                                                        "src": "24237:76:18"
                                                                    },
                                                                    {
                                                                        "attributes": {},
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_address",
                                                                                        "typeString": "address"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "==",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "investor",
                                                                                            "referencedDeclaration": 11705,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8152,
                                                                                                    "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                    "value": "subscription"
                                                                                                },
                                                                                                "id": 8161,
                                                                                                "name": "Identifier",
                                                                                                "src": "24335:12:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8162,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "24335:21:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 7987,
                                                                                            "type": "address",
                                                                                            "value": "investor"
                                                                                        },
                                                                                        "id": 8163,
                                                                                        "name": "Identifier",
                                                                                        "src": "24358:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8164,
                                                                                "name": "BinaryOperation",
                                                                                "src": "24335:31:18"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "member_name": "amount",
                                                                                                            "referencedDeclaration": 11711,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8152,
                                                                                                                    "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                                    "value": "subscription"
                                                                                                                },
                                                                                                                "id": 8165,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "24390:12:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8167,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "24390:19:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "tryCall": false,
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "sub",
                                                                                                                    "referencedDeclaration": 2177,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2367,
                                                                                                                            "type": "type(library Math)",
                                                                                                                            "value": "Math"
                                                                                                                        },
                                                                                                                        "id": 8168,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24412:4:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8169,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "24412:8:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "amount",
                                                                                                                    "referencedDeclaration": 11711,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8152,
                                                                                                                            "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                                            "value": "subscription"
                                                                                                                        },
                                                                                                                        "id": 8170,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24421:12:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8171,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "24421:19:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8009,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "amount"
                                                                                                                },
                                                                                                                "id": 8172,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "24442:6:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8173,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "24412:37:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8174,
                                                                                                "name": "Assignment",
                                                                                                "src": "24390:59:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8175,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "24390:59:18"
                                                                                    },
                                                                                    {
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "=",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": true,
                                                                                                            "member_name": "traded",
                                                                                                            "referencedDeclaration": 11713,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8152,
                                                                                                                    "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                                    "value": "subscription"
                                                                                                                },
                                                                                                                "id": 8176,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "24472:12:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8178,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "24472:19:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "isStructConstructorCall": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "names": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "tryCall": false,
                                                                                                            "type": "uint256",
                                                                                                            "type_conversion": false
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "argumentTypes": [
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        },
                                                                                                                        {
                                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                                            "typeString": "uint256"
                                                                                                                        }
                                                                                                                    ],
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "sub",
                                                                                                                    "referencedDeclaration": 2177,
                                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 2367,
                                                                                                                            "type": "type(library Math)",
                                                                                                                            "value": "Math"
                                                                                                                        },
                                                                                                                        "id": 8179,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24494:4:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8180,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "24494:8:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "member_name": "traded",
                                                                                                                    "referencedDeclaration": 11713,
                                                                                                                    "type": "uint256"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 8152,
                                                                                                                            "type": "struct IMarketMaker.subscriptions storage pointer",
                                                                                                                            "value": "subscription"
                                                                                                                        },
                                                                                                                        "id": 8181,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24503:12:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8182,
                                                                                                                "name": "MemberAccess",
                                                                                                                "src": "24503:19:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "isStructConstructorCall": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "names": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "tryCall": false,
                                                                                                                    "type": "uint256",
                                                                                                                    "type_conversion": false
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "argumentTypes": [
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                },
                                                                                                                                {
                                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                                    "typeString": "uint256"
                                                                                                                                }
                                                                                                                            ],
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 9265,
                                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                                                            "value": "_downscaleDown"
                                                                                                                        },
                                                                                                                        "id": 8183,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24524:14:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 7989,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "sAmount"
                                                                                                                        },
                                                                                                                        "id": 8184,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24539:7:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "isStructConstructorCall": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "names": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "tryCall": false,
                                                                                                                            "type": "uint256",
                                                                                                                            "type_conversion": false
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "argumentTypes": [
                                                                                                                                        {
                                                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                                                            "typeString": "contract IERC20"
                                                                                                                                        }
                                                                                                                                    ],
                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "referencedDeclaration": 9248,
                                                                                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                                                                                    "value": "_computeScalingFactor"
                                                                                                                                },
                                                                                                                                "id": 8185,
                                                                                                                                "name": "Identifier",
                                                                                                                                "src": "24548:21:18"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "isStructConstructorCall": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "names": [
                                                                                                                                        null
                                                                                                                                    ],
                                                                                                                                    "tryCall": false,
                                                                                                                                    "type": "contract IERC20",
                                                                                                                                    "type_conversion": true
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "argumentTypes": [
                                                                                                                                                {
                                                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                                                    "typeString": "address"
                                                                                                                                                }
                                                                                                                                            ],
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 2938,
                                                                                                                                            "type": "type(contract IERC20)",
                                                                                                                                            "value": "IERC20"
                                                                                                                                        },
                                                                                                                                        "id": 8186,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "24570:6:18"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 7981,
                                                                                                                                            "type": "address",
                                                                                                                                            "value": "security"
                                                                                                                                        },
                                                                                                                                        "id": 8187,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "24577:8:18"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 8188,
                                                                                                                                "name": "FunctionCall",
                                                                                                                                "src": "24570:16:18"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 8189,
                                                                                                                        "name": "FunctionCall",
                                                                                                                        "src": "24548:39:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8190,
                                                                                                                "name": "FunctionCall",
                                                                                                                "src": "24524:64:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8191,
                                                                                                        "name": "FunctionCall",
                                                                                                        "src": "24494:95:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8192,
                                                                                                "name": "Assignment",
                                                                                                "src": "24472:117:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8193,
                                                                                        "name": "ExpressionStatement",
                                                                                        "src": "24472:117:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8194,
                                                                                "name": "Block",
                                                                                "src": "24367:242:18"
                                                                            }
                                                                        ],
                                                                        "id": 8195,
                                                                        "name": "IfStatement",
                                                                        "src": "24332:277:18"
                                                                    },
                                                                    {
                                                                        "attributes": {},
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": ">=",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "mapping(address => uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6584,
                                                                                                            "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                                                            "value": "subscribed"
                                                                                                        },
                                                                                                        "id": 8196,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "24630:10:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7979,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 8197,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "24641:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8198,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "24630:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 7983,
                                                                                                    "type": "address",
                                                                                                    "value": "asset"
                                                                                                },
                                                                                                "id": 8199,
                                                                                                "name": "Identifier",
                                                                                                "src": "24649:5:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8200,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "24630:25:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8009,
                                                                                            "type": "uint256",
                                                                                            "value": "amount"
                                                                                        },
                                                                                        "id": 8201,
                                                                                        "name": "Identifier",
                                                                                        "src": "24659:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8202,
                                                                                "name": "BinaryOperation",
                                                                                "src": "24630:35:18"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "=",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": true,
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "mapping(address => uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 6584,
                                                                                                                    "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                                                                    "value": "subscribed"
                                                                                                                },
                                                                                                                "id": 8203,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "24688:10:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 7979,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "poolId"
                                                                                                                },
                                                                                                                "id": 8204,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "24699:6:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8206,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "24688:18:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 7983,
                                                                                                            "type": "address",
                                                                                                            "value": "asset"
                                                                                                        },
                                                                                                        "id": 8205,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "24707:5:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8207,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "24688:25:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "uint256",
                                                                                                    "type_conversion": false
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                },
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                                    "typeString": "uint256"
                                                                                                                }
                                                                                                            ],
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": false,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "sub",
                                                                                                            "referencedDeclaration": 2177,
                                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 2367,
                                                                                                                    "type": "type(library Math)",
                                                                                                                    "value": "Math"
                                                                                                                },
                                                                                                                "id": 8208,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "24716:4:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8209,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "24716:8:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "uint256"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "mapping(address => uint256)"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 6584,
                                                                                                                            "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                                                                            "value": "subscribed"
                                                                                                                        },
                                                                                                                        "id": 8210,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24725:10:18"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 7979,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "poolId"
                                                                                                                        },
                                                                                                                        "id": 8211,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "24736:6:18"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 8212,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "24725:18:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 7983,
                                                                                                                    "type": "address",
                                                                                                                    "value": "asset"
                                                                                                                },
                                                                                                                "id": 8213,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "24744:5:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8214,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "24725:25:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8009,
                                                                                                            "type": "uint256",
                                                                                                            "value": "amount"
                                                                                                        },
                                                                                                        "id": 8215,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "24752:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8216,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "24716:43:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8217,
                                                                                        "name": "Assignment",
                                                                                        "src": "24688:71:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8218,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "24688:71:18"
                                                                            }
                                                                        ],
                                                                        "id": 8219,
                                                                        "name": "IfStatement",
                                                                        "src": "24627:132:18"
                                                                    }
                                                                ],
                                                                "id": 8220,
                                                                "name": "Block",
                                                                "src": "24218:557:18"
                                                            }
                                                        ],
                                                        "id": 8221,
                                                        "name": "IfStatement",
                                                        "src": "24205:570:18"
                                                    }
                                                ],
                                                "id": 8222,
                                                "name": "Block",
                                                "src": "24190:596:18"
                                            }
                                        ],
                                        "id": 8223,
                                        "name": "IfStatement",
                                        "src": "23085:1701:18"
                                    }
                                ],
                                "id": 8224,
                                "name": "Block",
                                "src": "22809:1984:18"
                            }
                        ],
                        "id": 8225,
                        "name": "FunctionDefinition",
                        "src": "22629:2164:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11811
                            ],
                            "functionSelector": "bfa0caa7",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "getSubscribers",
                            "scope": 9283,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Fetches investors (subscribers) to a primary issue pool\n@param   poolId identifier for a primary issue pool for which subscribers are to be returned"
                                },
                                "id": 8226,
                                "name": "StructuredDocumentation",
                                "src": "24801:179:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 8230,
                                "name": "OverrideSpecifier",
                                "src": "25026:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 8247,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 8227,
                                                "name": "ElementaryTypeName",
                                                "src": "25010:7:18"
                                            }
                                        ],
                                        "id": 8228,
                                        "name": "VariableDeclaration",
                                        "src": "25010:14:18"
                                    }
                                ],
                                "id": 8229,
                                "name": "ParameterList",
                                "src": "25009:16:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 8247,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "struct IMarketMaker.subscriptions[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "struct IMarketMaker.subscriptions[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IMarketMaker.subscriptions",
                                                            "referencedDeclaration": 11714,
                                                            "type": "struct IMarketMaker.subscriptions"
                                                        },
                                                        "id": 8238,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "25108:26:18"
                                                    }
                                                ],
                                                "id": 8239,
                                                "name": "ArrayTypeName",
                                                "src": "25108:28:18"
                                            }
                                        ],
                                        "id": 8240,
                                        "name": "VariableDeclaration",
                                        "src": "25108:35:18"
                                    }
                                ],
                                "id": 8241,
                                "name": "ParameterList",
                                "src": "25107:37:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6512,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 8231,
                                        "name": "Identifier",
                                        "src": "25049:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 8232,
                                                "name": "Identifier",
                                                "src": "25066:3:18"
                                            }
                                        ],
                                        "id": 8233,
                                        "name": "MemberAccess",
                                        "src": "25066:10:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "type": "address"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 6592,
                                                    "type": "mapping(bytes32 => address)",
                                                    "value": "poolSecurity"
                                                },
                                                "id": 8234,
                                                "name": "Identifier",
                                                "src": "25078:12:18"
                                            },
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 8228,
                                                    "type": "bytes32",
                                                    "value": "poolId"
                                                },
                                                "id": 8235,
                                                "name": "Identifier",
                                                "src": "25091:6:18"
                                            }
                                        ],
                                        "id": 8236,
                                        "name": "IndexAccess",
                                        "src": "25078:20:18"
                                    }
                                ],
                                "id": 8237,
                                "name": "ModifierInvocation",
                                "src": "25049:50:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 8241
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6572,
                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                            "value": "investors"
                                                        },
                                                        "id": 8242,
                                                        "name": "Identifier",
                                                        "src": "25162:9:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8228,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 8243,
                                                        "name": "Identifier",
                                                        "src": "25172:6:18"
                                                    }
                                                ],
                                                "id": 8244,
                                                "name": "IndexAccess",
                                                "src": "25162:17:18"
                                            }
                                        ],
                                        "id": 8245,
                                        "name": "Return",
                                        "src": "25155:24:18"
                                    }
                                ],
                                "id": 8246,
                                "name": "Block",
                                "src": "25144:43:18"
                            }
                        ],
                        "id": 8247,
                        "name": "FunctionDefinition",
                        "src": "24986:201:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11803
                            ],
                            "functionSelector": "c74073a1",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "close",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Called by issuer to close subscription of 'security' issued by it\n@param  security    address of security token"
                                },
                                "id": 8248,
                                "name": "StructuredDocumentation",
                                "src": "25195:142:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 8252,
                                "name": "OverrideSpecifier",
                                "src": "25378:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 8400,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8249,
                                                "name": "ElementaryTypeName",
                                                "src": "25360:7:18"
                                            }
                                        ],
                                        "id": 8250,
                                        "name": "VariableDeclaration",
                                        "src": "25360:16:18"
                                    }
                                ],
                                "id": 8251,
                                "name": "ParameterList",
                                "src": "25359:18:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 8258,
                                "name": "ParameterList",
                                "src": "25435:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6512,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 8253,
                                        "name": "Identifier",
                                        "src": "25396:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 8254,
                                                "name": "Identifier",
                                                "src": "25413:3:18"
                                            }
                                        ],
                                        "id": 8255,
                                        "name": "MemberAccess",
                                        "src": "25413:10:18"
                                    },
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 8250,
                                            "type": "address",
                                            "value": "security"
                                        },
                                        "id": 8256,
                                        "name": "Identifier",
                                        "src": "25425:8:18"
                                    }
                                ],
                                "id": 8257,
                                "name": "ModifierInvocation",
                                "src": "25396:38:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8260
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "currency",
                                                    "scope": 8399,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8259,
                                                        "name": "ElementaryTypeName",
                                                        "src": "25446:7:18"
                                                    }
                                                ],
                                                "id": 8260,
                                                "name": "VariableDeclaration",
                                                "src": "25446:16:18"
                                            }
                                        ],
                                        "id": 8261,
                                        "name": "VariableDeclarationStatement",
                                        "src": "25446:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8263
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "poolId",
                                                    "scope": 8399,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 8262,
                                                        "name": "ElementaryTypeName",
                                                        "src": "25473:7:18"
                                                    }
                                                ],
                                                "id": 8263,
                                                "name": "VariableDeclaration",
                                                "src": "25473:14:18"
                                            }
                                        ],
                                        "id": 8264,
                                        "name": "VariableDeclarationStatement",
                                        "src": "25473:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8266
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "length",
                                                    "scope": 8399,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8265,
                                                        "name": "ElementaryTypeName",
                                                        "src": "25498:7:18"
                                                    }
                                                ],
                                                "id": 8266,
                                                "name": "VariableDeclaration",
                                                "src": "25498:14:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "length",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "pools",
                                                            "referencedDeclaration": 11700,
                                                            "type": "bytes32[] storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.primary storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6567,
                                                                            "type": "mapping(address => struct IMarketMaker.primary storage ref)",
                                                                            "value": "issues"
                                                                        },
                                                                        "id": 8267,
                                                                        "name": "Identifier",
                                                                        "src": "25515:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8250,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 8268,
                                                                        "name": "Identifier",
                                                                        "src": "25522:8:18"
                                                                    }
                                                                ],
                                                                "id": 8269,
                                                                "name": "IndexAccess",
                                                                "src": "25515:16:18"
                                                            }
                                                        ],
                                                        "id": 8270,
                                                        "name": "MemberAccess",
                                                        "src": "25515:22:18"
                                                    }
                                                ],
                                                "id": 8271,
                                                "name": "MemberAccess",
                                                "src": "25515:29:18"
                                            }
                                        ],
                                        "id": 8272,
                                        "name": "VariableDeclarationStatement",
                                        "src": "25498:46:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        8274
                                                    ]
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "mutability": "mutable",
                                                            "name": "i",
                                                            "scope": 8398,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint256",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 8273,
                                                                "name": "ElementaryTypeName",
                                                                "src": "25559:7:18"
                                                            }
                                                        ],
                                                        "id": 8274,
                                                        "name": "VariableDeclaration",
                                                        "src": "25559:9:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 8275,
                                                        "name": "Literal",
                                                        "src": "25569:1:18"
                                                    }
                                                ],
                                                "id": 8276,
                                                "name": "VariableDeclarationStatement",
                                                "src": "25559:11:18"
                                            },
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8274,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 8277,
                                                        "name": "Identifier",
                                                        "src": "25572:1:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8266,
                                                            "type": "uint256",
                                                            "value": "length"
                                                        },
                                                        "id": 8278,
                                                        "name": "Identifier",
                                                        "src": "25574:6:18"
                                                    }
                                                ],
                                                "id": 8279,
                                                "name": "BinaryOperation",
                                                "src": "25572:8:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8274,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8280,
                                                                "name": "Identifier",
                                                                "src": "25582:1:18"
                                                            }
                                                        ],
                                                        "id": 8281,
                                                        "name": "UnaryOperation",
                                                        "src": "25582:3:18"
                                                    }
                                                ],
                                                "id": 8282,
                                                "name": "ExpressionStatement",
                                                "src": "25582:3:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8263,
                                                                            "type": "bytes32",
                                                                            "value": "poolId"
                                                                        },
                                                                        "id": 8283,
                                                                        "name": "Identifier",
                                                                        "src": "25603:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "pools",
                                                                                    "referencedDeclaration": 11700,
                                                                                    "type": "bytes32[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.primary storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6567,
                                                                                                    "type": "mapping(address => struct IMarketMaker.primary storage ref)",
                                                                                                    "value": "issues"
                                                                                                },
                                                                                                "id": 8284,
                                                                                                "name": "Identifier",
                                                                                                "src": "25612:6:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8250,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 8285,
                                                                                                "name": "Identifier",
                                                                                                "src": "25619:8:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8286,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "25612:16:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8287,
                                                                                "name": "MemberAccess",
                                                                                "src": "25612:22:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8274,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8288,
                                                                                "name": "Identifier",
                                                                                "src": "25635:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 8289,
                                                                        "name": "IndexAccess",
                                                                        "src": "25612:25:18"
                                                                    }
                                                                ],
                                                                "id": 8290,
                                                                "name": "Assignment",
                                                                "src": "25603:34:18"
                                                            }
                                                        ],
                                                        "id": 8291,
                                                        "name": "ExpressionStatement",
                                                        "src": "25603:34:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8260,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 8292,
                                                                        "name": "Identifier",
                                                                        "src": "25652:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "arguments": [
                                                                                null
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "address",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        null
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "getCurrency",
                                                                                    "referencedDeclaration": 11995,
                                                                                    "type": "function () view external returns (address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract IPrimaryIssuePool",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 12016,
                                                                                                    "type": "type(contract IPrimaryIssuePool)",
                                                                                                    "value": "IPrimaryIssuePool"
                                                                                                },
                                                                                                "id": 8293,
                                                                                                "name": "Identifier",
                                                                                                "src": "25663:17:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6588,
                                                                                                            "type": "mapping(bytes32 => address)",
                                                                                                            "value": "pools"
                                                                                                        },
                                                                                                        "id": 8294,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "25681:5:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8263,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 8295,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "25687:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8296,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "25681:13:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8297,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "25663:32:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8298,
                                                                                "name": "MemberAccess",
                                                                                "src": "25663:44:18"
                                                                            }
                                                                        ],
                                                                        "id": 8299,
                                                                        "name": "FunctionCall",
                                                                        "src": "25663:46:18"
                                                                    }
                                                                ],
                                                                "id": 8300,
                                                                "name": "Assignment",
                                                                "src": "25652:57:18"
                                                            }
                                                        ],
                                                        "id": 8301,
                                                        "name": "ExpressionStatement",
                                                        "src": "25652:57:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8305,
                                                                null,
                                                                null
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "tokens",
                                                                    "scope": 8397,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "memory",
                                                                    "type": "contract IERC20[]",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "type": "contract IERC20[]"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "IERC20",
                                                                                    "referencedDeclaration": 2938,
                                                                                    "type": "contract IERC20"
                                                                                },
                                                                                "id": 8303,
                                                                                "name": "UserDefinedTypeName",
                                                                                "src": "25764:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8304,
                                                                        "name": "ArrayTypeName",
                                                                        "src": "25764:8:18"
                                                                    }
                                                                ],
                                                                "id": 8305,
                                                                "name": "VariableDeclaration",
                                                                "src": "25764:22:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple(contract IERC20[] memory,uint256[] memory,uint256)",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "getPoolTokens",
                                                                            "referencedDeclaration": 3444,
                                                                            "type": "function (bytes32) view external returns (contract IERC20[] memory,uint256[] memory,uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IVault",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3688,
                                                                                            "type": "type(contract IVault)",
                                                                                            "value": "IVault"
                                                                                        },
                                                                                        "id": 8306,
                                                                                        "name": "Identifier",
                                                                                        "src": "25794:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6392,
                                                                                            "type": "address",
                                                                                            "value": "vault"
                                                                                        },
                                                                                        "id": 8307,
                                                                                        "name": "Identifier",
                                                                                        "src": "25801:5:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8308,
                                                                                "name": "FunctionCall",
                                                                                "src": "25794:13:18"
                                                                            }
                                                                        ],
                                                                        "id": 8309,
                                                                        "name": "MemberAccess",
                                                                        "src": "25794:27:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8263,
                                                                            "type": "bytes32",
                                                                            "value": "poolId"
                                                                        },
                                                                        "id": 8310,
                                                                        "name": "Identifier",
                                                                        "src": "25822:6:18"
                                                                    }
                                                                ],
                                                                "id": 8311,
                                                                "name": "FunctionCall",
                                                                "src": "25794:35:18"
                                                            }
                                                        ],
                                                        "id": 8312,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "25763:66:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8316
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "assets",
                                                                    "scope": 8397,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "memory",
                                                                    "type": "contract IAsset[]",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "type": "contract IAsset[]"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "IAsset",
                                                                                    "referencedDeclaration": 3127,
                                                                                    "type": "contract IAsset"
                                                                                },
                                                                                "id": 8314,
                                                                                "name": "UserDefinedTypeName",
                                                                                "src": "25844:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8315,
                                                                        "name": "ArrayTypeName",
                                                                        "src": "25844:8:18"
                                                                    }
                                                                ],
                                                                "id": 8316,
                                                                "name": "VariableDeclaration",
                                                                "src": "25844:22:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IAsset[] memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                                    "typeString": "contract IERC20[] memory"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9213,
                                                                            "type": "function (contract IERC20[] memory) pure returns (contract IAsset[] memory)",
                                                                            "value": "_convertERC20sToAssets"
                                                                        },
                                                                        "id": 8317,
                                                                        "name": "Identifier",
                                                                        "src": "25869:22:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8305,
                                                                            "type": "contract IERC20[] memory",
                                                                            "value": "tokens"
                                                                        },
                                                                        "id": 8318,
                                                                        "name": "Identifier",
                                                                        "src": "25892:6:18"
                                                                    }
                                                                ],
                                                                "id": 8319,
                                                                "name": "FunctionCall",
                                                                "src": "25869:30:18"
                                                            }
                                                        ],
                                                        "id": 8320,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "25844:55:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8325
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "amountsOut",
                                                                    "scope": 8397,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "memory",
                                                                    "type": "uint256[]",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "type": "uint256[]"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "uint256",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "id": 8323,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "25914:7:18"
                                                                            }
                                                                        ],
                                                                        "id": 8324,
                                                                        "name": "ArrayTypeName",
                                                                        "src": "25914:9:18"
                                                                    }
                                                                ],
                                                                "id": 8325,
                                                                "name": "VariableDeclaration",
                                                                "src": "25914:27:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256[] memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "function (uint256) pure returns (uint256[] memory)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "type": "uint256[]"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "uint256",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "id": 8326,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "25948:7:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8327,
                                                                                "name": "ArrayTypeName",
                                                                                "src": "25948:9:18"
                                                                            }
                                                                        ],
                                                                        "id": 8328,
                                                                        "name": "NewExpression",
                                                                        "src": "25944:13:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "length",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8305,
                                                                                    "type": "contract IERC20[] memory",
                                                                                    "value": "tokens"
                                                                                },
                                                                                "id": 8329,
                                                                                "name": "Identifier",
                                                                                "src": "25958:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8330,
                                                                        "name": "MemberAccess",
                                                                        "src": "25958:13:18"
                                                                    }
                                                                ],
                                                                "id": 8331,
                                                                "name": "FunctionCall",
                                                                "src": "25944:28:18"
                                                            }
                                                        ],
                                                        "id": 8332,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "25914:58:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "assignments": [
                                                                8336
                                                            ]
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "constant": false,
                                                                    "mutability": "mutable",
                                                                    "name": "request",
                                                                    "scope": 8397,
                                                                    "stateVariable": false,
                                                                    "storageLocation": "memory",
                                                                    "type": "struct IVault.ExitPoolRequest",
                                                                    "visibility": "internal"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "IVault.ExitPoolRequest",
                                                                            "referencedDeclaration": 3490,
                                                                            "type": "struct IVault.ExitPoolRequest"
                                                                        },
                                                                        "id": 8335,
                                                                        "name": "UserDefinedTypeName",
                                                                        "src": "25987:22:18"
                                                                    }
                                                                ],
                                                                "id": 8336,
                                                                "name": "VariableDeclaration",
                                                                "src": "25987:37:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": true,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        "assets",
                                                                        "minAmountsOut",
                                                                        "userData",
                                                                        "toInternalBalance"
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "struct IVault.ExitPoolRequest memory",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                                                    "typeString": "contract IAsset[] memory"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                                    "typeString": "uint256[] memory"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                                    "typeString": "bytes memory"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_bool",
                                                                                    "typeString": "bool"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "ExitPoolRequest",
                                                                            "referencedDeclaration": 3490,
                                                                            "type": "type(struct IVault.ExitPoolRequest storage pointer)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3688,
                                                                                    "type": "type(contract IVault)",
                                                                                    "value": "IVault"
                                                                                },
                                                                                "id": 8337,
                                                                                "name": "Identifier",
                                                                                "src": "26027:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8338,
                                                                        "name": "MemberAccess",
                                                                        "src": "26027:22:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8316,
                                                                            "type": "contract IAsset[] memory",
                                                                            "value": "assets"
                                                                        },
                                                                        "id": 8339,
                                                                        "name": "Identifier",
                                                                        "src": "26077:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8325,
                                                                            "type": "uint256[] memory",
                                                                            "value": "amountsOut"
                                                                        },
                                                                        "id": 8340,
                                                                        "name": "Identifier",
                                                                        "src": "26117:10:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "bytes memory",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_enum$_ExitKind_$11658",
                                                                                            "typeString": "enum IMarketMaker.ExitKind"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "encode",
                                                                                    "type": "function () pure returns (bytes memory)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": -1,
                                                                                            "type": "abi",
                                                                                            "value": "abi"
                                                                                        },
                                                                                        "id": 8341,
                                                                                        "name": "Identifier",
                                                                                        "src": "26156:3:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8342,
                                                                                "name": "MemberAccess",
                                                                                "src": "26156:10:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "EXACT_BPT_IN_FOR_TOKENS_OUT",
                                                                                    "type": "enum IMarketMaker.ExitKind"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 11658,
                                                                                            "type": "type(enum IMarketMaker.ExitKind)",
                                                                                            "value": "ExitKind"
                                                                                        },
                                                                                        "id": 8343,
                                                                                        "name": "Identifier",
                                                                                        "src": "26167:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8344,
                                                                                "name": "MemberAccess",
                                                                                "src": "26167:36:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "-",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6403,
                                                                                            "type": "uint256",
                                                                                            "value": "_INITIAL_BPT_SUPPLY"
                                                                                        },
                                                                                        "id": 8345,
                                                                                        "name": "Identifier",
                                                                                        "src": "26205:19:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6406,
                                                                                            "type": "uint256",
                                                                                            "value": "_DEFAULT_MINIMUM_BPT"
                                                                                        },
                                                                                        "id": 8346,
                                                                                        "name": "Identifier",
                                                                                        "src": "26227:20:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8347,
                                                                                "name": "BinaryOperation",
                                                                                "src": "26205:42:18"
                                                                            }
                                                                        ],
                                                                        "id": 8348,
                                                                        "name": "FunctionCall",
                                                                        "src": "26156:92:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "66616c7365",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "bool",
                                                                            "type": "bool",
                                                                            "value": "false"
                                                                        },
                                                                        "id": 8349,
                                                                        "name": "Literal",
                                                                        "src": "26286:5:18"
                                                                    }
                                                                ],
                                                                "id": 8350,
                                                                "name": "FunctionCall",
                                                                "src": "26027:280:18"
                                                            }
                                                        ],
                                                        "id": 8351,
                                                        "name": "VariableDeclarationStatement",
                                                        "src": "25987:320:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address_payable",
                                                                                    "typeString": "address payable"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                                                                    "typeString": "struct IVault.ExitPoolRequest memory"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "exitPool",
                                                                            "referencedDeclaration": 3479,
                                                                            "type": "function (bytes32,address,address payable,struct IVault.ExitPoolRequest memory) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IVault",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 3688,
                                                                                            "type": "type(contract IVault)",
                                                                                            "value": "IVault"
                                                                                        },
                                                                                        "id": 8352,
                                                                                        "name": "Identifier",
                                                                                        "src": "26331:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6392,
                                                                                            "type": "address",
                                                                                            "value": "vault"
                                                                                        },
                                                                                        "id": 8353,
                                                                                        "name": "Identifier",
                                                                                        "src": "26338:5:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8354,
                                                                                "name": "FunctionCall",
                                                                                "src": "26331:13:18"
                                                                            }
                                                                        ],
                                                                        "id": 8355,
                                                                        "name": "MemberAccess",
                                                                        "src": "26331:22:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8263,
                                                                            "type": "bytes32",
                                                                            "value": "poolId"
                                                                        },
                                                                        "id": 8356,
                                                                        "name": "Identifier",
                                                                        "src": "26354:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                            "typeString": "contract PrimaryIssueManager"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "address"
                                                                                        },
                                                                                        "id": 8357,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "26362:7:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8358,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "26362:7:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": -28,
                                                                                    "type": "contract PrimaryIssueManager",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 8359,
                                                                                "name": "Identifier",
                                                                                "src": "26370:4:18"
                                                                            }
                                                                        ],
                                                                        "id": 8360,
                                                                        "name": "FunctionCall",
                                                                        "src": "26362:13:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "address payable",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address payable)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "address",
                                                                                            "stateMutability": "payable"
                                                                                        },
                                                                                        "id": 8361,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "26377:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8362,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "26377:8:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "address",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                                    "typeString": "contract PrimaryIssueManager"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "name": "address"
                                                                                                },
                                                                                                "id": 8363,
                                                                                                "name": "ElementaryTypeName",
                                                                                                "src": "26385:7:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8364,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "26385:7:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": -28,
                                                                                            "type": "contract PrimaryIssueManager",
                                                                                            "value": "this"
                                                                                        },
                                                                                        "id": 8365,
                                                                                        "name": "Identifier",
                                                                                        "src": "26393:4:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8366,
                                                                                "name": "FunctionCall",
                                                                                "src": "26385:13:18"
                                                                            }
                                                                        ],
                                                                        "id": 8367,
                                                                        "name": "FunctionCall",
                                                                        "src": "26377:22:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8336,
                                                                            "type": "struct IVault.ExitPoolRequest memory",
                                                                            "value": "request"
                                                                        },
                                                                        "id": 8368,
                                                                        "name": "Identifier",
                                                                        "src": "26401:7:18"
                                                                    }
                                                                ],
                                                                "id": 8369,
                                                                "name": "FunctionCall",
                                                                "src": "26331:78:18"
                                                            }
                                                        ],
                                                        "id": 8370,
                                                        "name": "ExpressionStatement",
                                                        "src": "26331:78:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6672,
                                                                            "type": "function (bytes32,address,uint256)",
                                                                            "value": "closures"
                                                                        },
                                                                        "id": 8371,
                                                                        "name": "Identifier",
                                                                        "src": "26429:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8263,
                                                                            "type": "bytes32",
                                                                            "value": "poolId"
                                                                        },
                                                                        "id": 8372,
                                                                        "name": "Identifier",
                                                                        "src": "26438:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8250,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 8373,
                                                                        "name": "Identifier",
                                                                        "src": "26446:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "timestamp",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": -4,
                                                                                    "type": "block",
                                                                                    "value": "block"
                                                                                },
                                                                                "id": 8374,
                                                                                "name": "Identifier",
                                                                                "src": "26456:5:18"
                                                                            }
                                                                        ],
                                                                        "id": 8375,
                                                                        "name": "MemberAccess",
                                                                        "src": "26456:15:18"
                                                                    }
                                                                ],
                                                                "id": 8376,
                                                                "name": "FunctionCall",
                                                                "src": "26429:43:18"
                                                            }
                                                        ],
                                                        "id": 8377,
                                                        "name": "EmitStatement",
                                                        "src": "26424:48:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "transfer",
                                                                            "referencedDeclaration": 2887,
                                                                            "type": "function (address,uint256) external returns (bool)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2938,
                                                                                            "type": "type(contract IERC20)",
                                                                                            "value": "IERC20"
                                                                                        },
                                                                                        "id": 8378,
                                                                                        "name": "Identifier",
                                                                                        "src": "26487:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8250,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 8379,
                                                                                        "name": "Identifier",
                                                                                        "src": "26494:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8380,
                                                                                "name": "FunctionCall",
                                                                                "src": "26487:16:18"
                                                                            }
                                                                        ],
                                                                        "id": 8381,
                                                                        "name": "MemberAccess",
                                                                        "src": "26487:25:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "issuer",
                                                                            "referencedDeclaration": 11702,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.primary storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6567,
                                                                                            "type": "mapping(address => struct IMarketMaker.primary storage ref)",
                                                                                            "value": "issues"
                                                                                        },
                                                                                        "id": 8382,
                                                                                        "name": "Identifier",
                                                                                        "src": "26513:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8250,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 8383,
                                                                                        "name": "Identifier",
                                                                                        "src": "26520:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8384,
                                                                                "name": "IndexAccess",
                                                                                "src": "26513:16:18"
                                                                            }
                                                                        ],
                                                                        "id": 8385,
                                                                        "name": "MemberAccess",
                                                                        "src": "26513:23:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "balanceOf",
                                                                                    "referencedDeclaration": 2877,
                                                                                    "type": "function (address) view external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2938,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 8386,
                                                                                                "name": "Identifier",
                                                                                                "src": "26538:6:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8250,
                                                                                                    "type": "address",
                                                                                                    "value": "security"
                                                                                                },
                                                                                                "id": 8387,
                                                                                                "name": "Identifier",
                                                                                                "src": "26545:8:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8388,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "26538:16:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8389,
                                                                                "name": "MemberAccess",
                                                                                "src": "26538:26:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "address",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                                                    "typeString": "contract PrimaryIssueManager"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "type": "type(address)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "name": "address"
                                                                                                },
                                                                                                "id": 8390,
                                                                                                "name": "ElementaryTypeName",
                                                                                                "src": "26565:7:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8391,
                                                                                        "name": "ElementaryTypeNameExpression",
                                                                                        "src": "26565:7:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": -28,
                                                                                            "type": "contract PrimaryIssueManager",
                                                                                            "value": "this"
                                                                                        },
                                                                                        "id": 8392,
                                                                                        "name": "Identifier",
                                                                                        "src": "26573:4:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8393,
                                                                                "name": "FunctionCall",
                                                                                "src": "26565:13:18"
                                                                            }
                                                                        ],
                                                                        "id": 8394,
                                                                        "name": "FunctionCall",
                                                                        "src": "26538:41:18"
                                                                    }
                                                                ],
                                                                "id": 8395,
                                                                "name": "FunctionCall",
                                                                "src": "26487:93:18"
                                                            }
                                                        ],
                                                        "id": 8396,
                                                        "name": "ExpressionStatement",
                                                        "src": "26487:93:18"
                                                    }
                                                ],
                                                "id": 8397,
                                                "name": "Block",
                                                "src": "25586:1006:18"
                                            }
                                        ],
                                        "id": 8398,
                                        "name": "ForStatement",
                                        "src": "25555:1037:18"
                                    }
                                ],
                                "id": 8399,
                                "name": "Block",
                                "src": "25435:1164:18"
                            }
                        ],
                        "id": 8400,
                        "name": "FunctionDefinition",
                        "src": "25345:1254:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11822
                            ],
                            "functionSelector": "8a0c62f1",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "accept",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Called by issuer to accept subscription to issue by investor\n@param  poolid      identifier of primary issue pool in which subscription is made by investor\n@param  investor    address of investor (subscriber)\n@param  amnt        amount of investment (subscription capital) accepted by issuer for which allotment of security tokens are made to investor\n@param  asset       address of asset which is used by investor to subscribe to the issue"
                                },
                                "id": 8401,
                                "name": "StructuredDocumentation",
                                "src": "26611:498:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 8411,
                                "name": "OverrideSpecifier",
                                "src": "27195:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolid",
                                            "scope": 8428,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 8402,
                                                "name": "ElementaryTypeName",
                                                "src": "27132:7:18"
                                            }
                                        ],
                                        "id": 8403,
                                        "name": "VariableDeclaration",
                                        "src": "27132:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "investor",
                                            "scope": 8428,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8404,
                                                "name": "ElementaryTypeName",
                                                "src": "27148:7:18"
                                            }
                                        ],
                                        "id": 8405,
                                        "name": "VariableDeclaration",
                                        "src": "27148:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amnt",
                                            "scope": 8428,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8406,
                                                "name": "ElementaryTypeName",
                                                "src": "27166:7:18"
                                            }
                                        ],
                                        "id": 8407,
                                        "name": "VariableDeclaration",
                                        "src": "27166:12:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "asset",
                                            "scope": 8428,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8408,
                                                "name": "ElementaryTypeName",
                                                "src": "27180:7:18"
                                            }
                                        ],
                                        "id": 8409,
                                        "name": "VariableDeclaration",
                                        "src": "27180:13:18"
                                    }
                                ],
                                "id": 8410,
                                "name": "ParameterList",
                                "src": "27131:63:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 8419,
                                "name": "ParameterList",
                                "src": "27264:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6512,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 8412,
                                        "name": "Identifier",
                                        "src": "27213:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 8413,
                                                "name": "Identifier",
                                                "src": "27230:3:18"
                                            }
                                        ],
                                        "id": 8414,
                                        "name": "MemberAccess",
                                        "src": "27230:10:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "type": "address"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 6592,
                                                    "type": "mapping(bytes32 => address)",
                                                    "value": "poolSecurity"
                                                },
                                                "id": 8415,
                                                "name": "Identifier",
                                                "src": "27242:12:18"
                                            },
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 8403,
                                                    "type": "bytes32",
                                                    "value": "poolid"
                                                },
                                                "id": 8416,
                                                "name": "Identifier",
                                                "src": "27255:6:18"
                                            }
                                        ],
                                        "id": 8417,
                                        "name": "IndexAccess",
                                        "src": "27242:20:18"
                                    }
                                ],
                                "id": 8418,
                                "name": "ModifierInvocation",
                                "src": "27213:50:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8656,
                                                            "type": "function (bytes32,address,uint256,address)",
                                                            "value": "onAccept"
                                                        },
                                                        "id": 8420,
                                                        "name": "Identifier",
                                                        "src": "27275:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8403,
                                                            "type": "bytes32",
                                                            "value": "poolid"
                                                        },
                                                        "id": 8421,
                                                        "name": "Identifier",
                                                        "src": "27284:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8405,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8422,
                                                        "name": "Identifier",
                                                        "src": "27292:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8407,
                                                            "type": "uint256",
                                                            "value": "amnt"
                                                        },
                                                        "id": 8423,
                                                        "name": "Identifier",
                                                        "src": "27302:4:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8409,
                                                            "type": "address",
                                                            "value": "asset"
                                                        },
                                                        "id": 8424,
                                                        "name": "Identifier",
                                                        "src": "27308:5:18"
                                                    }
                                                ],
                                                "id": 8425,
                                                "name": "FunctionCall",
                                                "src": "27275:39:18"
                                            }
                                        ],
                                        "id": 8426,
                                        "name": "ExpressionStatement",
                                        "src": "27275:39:18"
                                    }
                                ],
                                "id": 8427,
                                "name": "Block",
                                "src": "27264:58:18"
                            }
                        ],
                        "id": 8428,
                        "name": "FunctionDefinition",
                        "src": "27116:206:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "onAccept",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolid",
                                            "scope": 8656,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 8429,
                                                "name": "ElementaryTypeName",
                                                "src": "27356:7:18"
                                            }
                                        ],
                                        "id": 8430,
                                        "name": "VariableDeclaration",
                                        "src": "27356:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "investor",
                                            "scope": 8656,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8431,
                                                "name": "ElementaryTypeName",
                                                "src": "27372:7:18"
                                            }
                                        ],
                                        "id": 8432,
                                        "name": "VariableDeclaration",
                                        "src": "27372:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amnt",
                                            "scope": 8656,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 8433,
                                                "name": "ElementaryTypeName",
                                                "src": "27390:7:18"
                                            }
                                        ],
                                        "id": 8434,
                                        "name": "VariableDeclaration",
                                        "src": "27390:12:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "asset",
                                            "scope": 8656,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8435,
                                                "name": "ElementaryTypeName",
                                                "src": "27404:7:18"
                                            }
                                        ],
                                        "id": 8436,
                                        "name": "VariableDeclaration",
                                        "src": "27404:13:18"
                                    }
                                ],
                                "id": 8437,
                                "name": "ParameterList",
                                "src": "27355:63:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 8438,
                                "name": "ParameterList",
                                "src": "27427:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8440
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "i",
                                                    "scope": 8655,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8439,
                                                        "name": "ElementaryTypeName",
                                                        "src": "27438:7:18"
                                                    }
                                                ],
                                                "id": 8440,
                                                "name": "VariableDeclaration",
                                                "src": "27438:9:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(address => uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6578,
                                                                    "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                    "value": "subscriberIndex"
                                                                },
                                                                "id": 8441,
                                                                "name": "Identifier",
                                                                "src": "27450:15:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8430,
                                                                    "type": "bytes32",
                                                                    "value": "poolid"
                                                                },
                                                                "id": 8442,
                                                                "name": "Identifier",
                                                                "src": "27466:6:18"
                                                            }
                                                        ],
                                                        "id": 8443,
                                                        "name": "IndexAccess",
                                                        "src": "27450:23:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8432,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8444,
                                                        "name": "Identifier",
                                                        "src": "27474:8:18"
                                                    }
                                                ],
                                                "id": 8445,
                                                "name": "IndexAccess",
                                                "src": "27450:33:18"
                                            }
                                        ],
                                        "id": 8446,
                                        "name": "VariableDeclarationStatement",
                                        "src": "27438:45:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_e2f2c390dc65fbe57761f20efd170b5425064fa5f1d6f055b666c7e32602b996",
                                                                    "typeString": "literal_string \"No subscriber found\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8447,
                                                        "name": "Identifier",
                                                        "src": "27494:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8440,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8448,
                                                                "name": "Identifier",
                                                                "src": "27502:1:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 8449,
                                                                "name": "Literal",
                                                                "src": "27504:1:18"
                                                            }
                                                        ],
                                                        "id": 8450,
                                                        "name": "BinaryOperation",
                                                        "src": "27502:3:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "4e6f207375627363726962657220666f756e64",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"No subscriber found\"",
                                                            "value": "No subscriber found"
                                                        },
                                                        "id": 8451,
                                                        "name": "Literal",
                                                        "src": "27507:21:18"
                                                    }
                                                ],
                                                "id": 8452,
                                                "name": "FunctionCall",
                                                "src": "27494:35:18"
                                            }
                                        ],
                                        "id": 8453,
                                        "name": "ExpressionStatement",
                                        "src": "27494:35:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8440,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 8454,
                                                        "name": "Identifier",
                                                        "src": "27540:1:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "-",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8440,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8455,
                                                                "name": "Identifier",
                                                                "src": "27544:1:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "31",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 1",
                                                                    "value": "1"
                                                                },
                                                                "id": 8456,
                                                                "name": "Literal",
                                                                "src": "27546:1:18"
                                                            }
                                                        ],
                                                        "id": 8457,
                                                        "name": "BinaryOperation",
                                                        "src": "27544:3:18"
                                                    }
                                                ],
                                                "id": 8458,
                                                "name": "Assignment",
                                                "src": "27540:7:18"
                                            }
                                        ],
                                        "id": 8459,
                                        "name": "ExpressionStatement",
                                        "src": "27540:7:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_296dcba4b50d73bfb50d0811a89e5ef1301d4292c5de07228a95f3a9b7bad615",
                                                                    "typeString": "literal_string \"Invalid allotment subscriber\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8460,
                                                        "name": "Identifier",
                                                        "src": "27558:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "investor",
                                                                    "referencedDeclaration": 11705,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6572,
                                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                            "value": "investors"
                                                                                        },
                                                                                        "id": 8461,
                                                                                        "name": "Identifier",
                                                                                        "src": "27566:9:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8430,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolid"
                                                                                        },
                                                                                        "id": 8462,
                                                                                        "name": "Identifier",
                                                                                        "src": "27576:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8463,
                                                                                "name": "IndexAccess",
                                                                                "src": "27566:17:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8440,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8464,
                                                                                "name": "Identifier",
                                                                                "src": "27584:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 8465,
                                                                        "name": "IndexAccess",
                                                                        "src": "27566:20:18"
                                                                    }
                                                                ],
                                                                "id": 8466,
                                                                "name": "MemberAccess",
                                                                "src": "27566:29:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8432,
                                                                    "type": "address",
                                                                    "value": "investor"
                                                                },
                                                                "id": 8467,
                                                                "name": "Identifier",
                                                                "src": "27597:8:18"
                                                            }
                                                        ],
                                                        "id": 8468,
                                                        "name": "BinaryOperation",
                                                        "src": "27566:39:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "496e76616c696420616c6c6f746d656e742073756273637269626572",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Invalid allotment subscriber\"",
                                                            "value": "Invalid allotment subscriber"
                                                        },
                                                        "id": 8469,
                                                        "name": "Literal",
                                                        "src": "27607:30:18"
                                                    }
                                                ],
                                                "id": 8470,
                                                "name": "FunctionCall",
                                                "src": "27558:80:18"
                                            }
                                        ],
                                        "id": 8471,
                                        "name": "ExpressionStatement",
                                        "src": "27558:80:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_e16a36465404b2599e32fb42c806d4f4de937fefad57ab99871838ab869ff264",
                                                                    "typeString": "literal_string \"Incorrect allotment amount\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8472,
                                                        "name": "Identifier",
                                                        "src": "27649:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "amount",
                                                                    "referencedDeclaration": 11711,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6572,
                                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                            "value": "investors"
                                                                                        },
                                                                                        "id": 8473,
                                                                                        "name": "Identifier",
                                                                                        "src": "27657:9:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8430,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolid"
                                                                                        },
                                                                                        "id": 8474,
                                                                                        "name": "Identifier",
                                                                                        "src": "27667:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8475,
                                                                                "name": "IndexAccess",
                                                                                "src": "27657:17:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8440,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8476,
                                                                                "name": "Identifier",
                                                                                "src": "27675:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 8477,
                                                                        "name": "IndexAccess",
                                                                        "src": "27657:20:18"
                                                                    }
                                                                ],
                                                                "id": 8478,
                                                                "name": "MemberAccess",
                                                                "src": "27657:27:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8434,
                                                                    "type": "uint256",
                                                                    "value": "amnt"
                                                                },
                                                                "id": 8479,
                                                                "name": "Identifier",
                                                                "src": "27688:4:18"
                                                            }
                                                        ],
                                                        "id": 8480,
                                                        "name": "BinaryOperation",
                                                        "src": "27657:35:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "496e636f727265637420616c6c6f746d656e7420616d6f756e74",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Incorrect allotment amount\"",
                                                            "value": "Incorrect allotment amount"
                                                        },
                                                        "id": 8481,
                                                        "name": "Literal",
                                                        "src": "27694:28:18"
                                                    }
                                                ],
                                                "id": 8482,
                                                "name": "FunctionCall",
                                                "src": "27649:74:18"
                                            }
                                        ],
                                        "id": 8483,
                                        "name": "ExpressionStatement",
                                        "src": "27649:74:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8485
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "prorataAllotment",
                                                    "scope": 8655,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8484,
                                                        "name": "ElementaryTypeName",
                                                        "src": "27744:7:18"
                                                    }
                                                ],
                                                "id": 8485,
                                                "name": "VariableDeclaration",
                                                "src": "27744:24:18"
                                            }
                                        ],
                                        "id": 8486,
                                        "name": "VariableDeclarationStatement",
                                        "src": "27744:24:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8488
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "securitiesAlloted",
                                                    "scope": 8655,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8487,
                                                        "name": "ElementaryTypeName",
                                                        "src": "27779:7:18"
                                                    }
                                                ],
                                                "id": 8488,
                                                "name": "VariableDeclaration",
                                                "src": "27779:25:18"
                                            }
                                        ],
                                        "id": 8489,
                                        "name": "VariableDeclarationStatement",
                                        "src": "27779:25:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8491
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "securityReturned",
                                                    "scope": 8655,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8490,
                                                        "name": "ElementaryTypeName",
                                                        "src": "27815:7:18"
                                                    }
                                                ],
                                                "id": 8491,
                                                "name": "VariableDeclaration",
                                                "src": "27815:24:18"
                                            }
                                        ],
                                        "id": 8492,
                                        "name": "VariableDeclarationStatement",
                                        "src": "27815:24:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8494
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "cashRefund",
                                                    "scope": 8655,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8493,
                                                        "name": "ElementaryTypeName",
                                                        "src": "27850:7:18"
                                                    }
                                                ],
                                                "id": 8494,
                                                "name": "VariableDeclaration",
                                                "src": "27850:18:18"
                                            }
                                        ],
                                        "id": 8495,
                                        "name": "VariableDeclarationStatement",
                                        "src": "27850:18:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8497
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "issued",
                                                    "scope": 8655,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8496,
                                                        "name": "ElementaryTypeName",
                                                        "src": "27972:7:18"
                                                    }
                                                ],
                                                "id": 8497,
                                                "name": "VariableDeclaration",
                                                "src": "27972:14:18"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getSecurity",
                                                            "referencedDeclaration": 11990,
                                                            "type": "function () view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IPrimaryIssuePool",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12016,
                                                                            "type": "type(contract IPrimaryIssuePool)",
                                                                            "value": "IPrimaryIssuePool"
                                                                        },
                                                                        "id": 8498,
                                                                        "name": "Identifier",
                                                                        "src": "27989:17:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6588,
                                                                                    "type": "mapping(bytes32 => address)",
                                                                                    "value": "pools"
                                                                                },
                                                                                "id": 8499,
                                                                                "name": "Identifier",
                                                                                "src": "28007:5:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8430,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolid"
                                                                                },
                                                                                "id": 8500,
                                                                                "name": "Identifier",
                                                                                "src": "28013:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8501,
                                                                        "name": "IndexAccess",
                                                                        "src": "28007:13:18"
                                                                    }
                                                                ],
                                                                "id": 8502,
                                                                "name": "FunctionCall",
                                                                "src": "27989:32:18"
                                                            }
                                                        ],
                                                        "id": 8503,
                                                        "name": "MemberAccess",
                                                        "src": "27989:44:18"
                                                    }
                                                ],
                                                "id": 8504,
                                                "name": "FunctionCall",
                                                "src": "27989:46:18"
                                            }
                                        ],
                                        "id": 8505,
                                        "name": "VariableDeclarationStatement",
                                        "src": "27972:63:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8485,
                                                            "type": "uint256",
                                                            "value": "prorataAllotment"
                                                        },
                                                        "id": 8506,
                                                        "name": "Identifier",
                                                        "src": "28086:16:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "divDown",
                                                                    "referencedDeclaration": 631,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 780,
                                                                            "type": "type(library FixedPoint)",
                                                                            "value": "FixedPoint"
                                                                        },
                                                                        "id": 8507,
                                                                        "name": "Identifier",
                                                                        "src": "28105:10:18"
                                                                    }
                                                                ],
                                                                "id": 8508,
                                                                "name": "MemberAccess",
                                                                "src": "28105:18:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8434,
                                                                    "type": "uint256",
                                                                    "value": "amnt"
                                                                },
                                                                "id": 8509,
                                                                "name": "Identifier",
                                                                "src": "28124:4:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "amount",
                                                                    "referencedDeclaration": 11711,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6572,
                                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                            "value": "investors"
                                                                                        },
                                                                                        "id": 8510,
                                                                                        "name": "Identifier",
                                                                                        "src": "28130:9:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8430,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolid"
                                                                                        },
                                                                                        "id": 8511,
                                                                                        "name": "Identifier",
                                                                                        "src": "28140:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8512,
                                                                                "name": "IndexAccess",
                                                                                "src": "28130:17:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8440,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8513,
                                                                                "name": "Identifier",
                                                                                "src": "28148:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 8514,
                                                                        "name": "IndexAccess",
                                                                        "src": "28130:20:18"
                                                                    }
                                                                ],
                                                                "id": 8515,
                                                                "name": "MemberAccess",
                                                                "src": "28130:27:18"
                                                            }
                                                        ],
                                                        "id": 8516,
                                                        "name": "FunctionCall",
                                                        "src": "28105:53:18"
                                                    }
                                                ],
                                                "id": 8517,
                                                "name": "Assignment",
                                                "src": "28086:72:18"
                                            }
                                        ],
                                        "id": 8518,
                                        "name": "ExpressionStatement",
                                        "src": "28086:72:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "member_name": "amount",
                                                            "referencedDeclaration": 11711,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6572,
                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                    "value": "investors"
                                                                                },
                                                                                "id": 8519,
                                                                                "name": "Identifier",
                                                                                "src": "28169:9:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8430,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolid"
                                                                                },
                                                                                "id": 8520,
                                                                                "name": "Identifier",
                                                                                "src": "28179:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8522,
                                                                        "name": "IndexAccess",
                                                                        "src": "28169:17:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8440,
                                                                            "type": "uint256",
                                                                            "value": "i"
                                                                        },
                                                                        "id": 8521,
                                                                        "name": "Identifier",
                                                                        "src": "28187:1:18"
                                                                    }
                                                                ],
                                                                "id": 8523,
                                                                "name": "IndexAccess",
                                                                "src": "28169:20:18"
                                                            }
                                                        ],
                                                        "id": 8524,
                                                        "name": "MemberAccess",
                                                        "src": "28169:27:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 2177,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2367,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 8525,
                                                                        "name": "Identifier",
                                                                        "src": "28199:4:18"
                                                                    }
                                                                ],
                                                                "id": 8526,
                                                                "name": "MemberAccess",
                                                                "src": "28199:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "amount",
                                                                    "referencedDeclaration": 11711,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6572,
                                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                            "value": "investors"
                                                                                        },
                                                                                        "id": 8527,
                                                                                        "name": "Identifier",
                                                                                        "src": "28208:9:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8430,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolid"
                                                                                        },
                                                                                        "id": 8528,
                                                                                        "name": "Identifier",
                                                                                        "src": "28218:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8529,
                                                                                "name": "IndexAccess",
                                                                                "src": "28208:17:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8440,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8530,
                                                                                "name": "Identifier",
                                                                                "src": "28226:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 8531,
                                                                        "name": "IndexAccess",
                                                                        "src": "28208:20:18"
                                                                    }
                                                                ],
                                                                "id": 8532,
                                                                "name": "MemberAccess",
                                                                "src": "28208:27:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8434,
                                                                    "type": "uint256",
                                                                    "value": "amnt"
                                                                },
                                                                "id": 8533,
                                                                "name": "Identifier",
                                                                "src": "28237:4:18"
                                                            }
                                                        ],
                                                        "id": 8534,
                                                        "name": "FunctionCall",
                                                        "src": "28199:43:18"
                                                    }
                                                ],
                                                "id": 8535,
                                                "name": "Assignment",
                                                "src": "28169:73:18"
                                            }
                                        ],
                                        "id": 8536,
                                        "name": "ExpressionStatement",
                                        "src": "28169:73:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8494,
                                                            "type": "uint256",
                                                            "value": "cashRefund"
                                                        },
                                                        "id": 8537,
                                                        "name": "Identifier",
                                                        "src": "28253:10:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "amount",
                                                            "referencedDeclaration": 11711,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6572,
                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                    "value": "investors"
                                                                                },
                                                                                "id": 8538,
                                                                                "name": "Identifier",
                                                                                "src": "28266:9:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8430,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolid"
                                                                                },
                                                                                "id": 8539,
                                                                                "name": "Identifier",
                                                                                "src": "28276:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8540,
                                                                        "name": "IndexAccess",
                                                                        "src": "28266:17:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8440,
                                                                            "type": "uint256",
                                                                            "value": "i"
                                                                        },
                                                                        "id": 8541,
                                                                        "name": "Identifier",
                                                                        "src": "28284:1:18"
                                                                    }
                                                                ],
                                                                "id": 8542,
                                                                "name": "IndexAccess",
                                                                "src": "28266:20:18"
                                                            }
                                                        ],
                                                        "id": 8543,
                                                        "name": "MemberAccess",
                                                        "src": "28266:27:18"
                                                    }
                                                ],
                                                "id": 8544,
                                                "name": "Assignment",
                                                "src": "28253:40:18"
                                            }
                                        ],
                                        "id": 8545,
                                        "name": "ExpressionStatement",
                                        "src": "28253:40:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8491,
                                                            "type": "uint256",
                                                            "value": "securityReturned"
                                                        },
                                                        "id": 8546,
                                                        "name": "Identifier",
                                                        "src": "28304:16:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 2177,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2367,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 8547,
                                                                        "name": "Identifier",
                                                                        "src": "28323:4:18"
                                                                    }
                                                                ],
                                                                "id": 8548,
                                                                "name": "MemberAccess",
                                                                "src": "28323:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "traded",
                                                                    "referencedDeclaration": 11713,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6572,
                                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                            "value": "investors"
                                                                                        },
                                                                                        "id": 8549,
                                                                                        "name": "Identifier",
                                                                                        "src": "28332:9:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8430,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolid"
                                                                                        },
                                                                                        "id": 8550,
                                                                                        "name": "Identifier",
                                                                                        "src": "28342:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8551,
                                                                                "name": "IndexAccess",
                                                                                "src": "28332:17:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8440,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8552,
                                                                                "name": "Identifier",
                                                                                "src": "28350:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 8553,
                                                                        "name": "IndexAccess",
                                                                        "src": "28332:20:18"
                                                                    }
                                                                ],
                                                                "id": 8554,
                                                                "name": "MemberAccess",
                                                                "src": "28332:27:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "mulDown",
                                                                            "referencedDeclaration": 537,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 780,
                                                                                    "type": "type(library FixedPoint)",
                                                                                    "value": "FixedPoint"
                                                                                },
                                                                                "id": 8555,
                                                                                "name": "Identifier",
                                                                                "src": "28361:10:18"
                                                                            }
                                                                        ],
                                                                        "id": 8556,
                                                                        "name": "MemberAccess",
                                                                        "src": "28361:18:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "traded",
                                                                            "referencedDeclaration": 11713,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6572,
                                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                                    "value": "investors"
                                                                                                },
                                                                                                "id": 8557,
                                                                                                "name": "Identifier",
                                                                                                "src": "28380:9:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8430,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "poolid"
                                                                                                },
                                                                                                "id": 8558,
                                                                                                "name": "Identifier",
                                                                                                "src": "28390:6:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8559,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "28380:17:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8440,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8560,
                                                                                        "name": "Identifier",
                                                                                        "src": "28398:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8561,
                                                                                "name": "IndexAccess",
                                                                                "src": "28380:20:18"
                                                                            }
                                                                        ],
                                                                        "id": 8562,
                                                                        "name": "MemberAccess",
                                                                        "src": "28380:27:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8485,
                                                                            "type": "uint256",
                                                                            "value": "prorataAllotment"
                                                                        },
                                                                        "id": 8563,
                                                                        "name": "Identifier",
                                                                        "src": "28409:16:18"
                                                                    }
                                                                ],
                                                                "id": 8564,
                                                                "name": "FunctionCall",
                                                                "src": "28361:65:18"
                                                            }
                                                        ],
                                                        "id": 8565,
                                                        "name": "FunctionCall",
                                                        "src": "28323:104:18"
                                                    }
                                                ],
                                                "id": 8566,
                                                "name": "Assignment",
                                                "src": "28304:123:18"
                                            }
                                        ],
                                        "id": 8567,
                                        "name": "ExpressionStatement",
                                        "src": "28304:123:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8488,
                                                            "type": "uint256",
                                                            "value": "securitiesAlloted"
                                                        },
                                                        "id": 8568,
                                                        "name": "Identifier",
                                                        "src": "28438:17:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "add",
                                                                    "referencedDeclaration": 2109,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2367,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 8569,
                                                                        "name": "Identifier",
                                                                        "src": "28458:4:18"
                                                                    }
                                                                ],
                                                                "id": 8570,
                                                                "name": "MemberAccess",
                                                                "src": "28458:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8488,
                                                                    "type": "uint256",
                                                                    "value": "securitiesAlloted"
                                                                },
                                                                "id": 8571,
                                                                "name": "Identifier",
                                                                "src": "28467:17:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "mulDown",
                                                                            "referencedDeclaration": 537,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 780,
                                                                                    "type": "type(library FixedPoint)",
                                                                                    "value": "FixedPoint"
                                                                                },
                                                                                "id": 8572,
                                                                                "name": "Identifier",
                                                                                "src": "28486:10:18"
                                                                            }
                                                                        ],
                                                                        "id": 8573,
                                                                        "name": "MemberAccess",
                                                                        "src": "28486:18:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "traded",
                                                                            "referencedDeclaration": 11713,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6572,
                                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                                    "value": "investors"
                                                                                                },
                                                                                                "id": 8574,
                                                                                                "name": "Identifier",
                                                                                                "src": "28505:9:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8430,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "poolid"
                                                                                                },
                                                                                                "id": 8575,
                                                                                                "name": "Identifier",
                                                                                                "src": "28515:6:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8576,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "28505:17:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8440,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8577,
                                                                                        "name": "Identifier",
                                                                                        "src": "28523:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8578,
                                                                                "name": "IndexAccess",
                                                                                "src": "28505:20:18"
                                                                            }
                                                                        ],
                                                                        "id": 8579,
                                                                        "name": "MemberAccess",
                                                                        "src": "28505:27:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8485,
                                                                            "type": "uint256",
                                                                            "value": "prorataAllotment"
                                                                        },
                                                                        "id": 8580,
                                                                        "name": "Identifier",
                                                                        "src": "28534:16:18"
                                                                    }
                                                                ],
                                                                "id": 8581,
                                                                "name": "FunctionCall",
                                                                "src": "28486:65:18"
                                                            }
                                                        ],
                                                        "id": 8582,
                                                        "name": "FunctionCall",
                                                        "src": "28458:94:18"
                                                    }
                                                ],
                                                "id": 8583,
                                                "name": "Assignment",
                                                "src": "28438:114:18"
                                            }
                                        ],
                                        "id": 8584,
                                        "name": "ExpressionStatement",
                                        "src": "28438:114:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6584,
                                                                            "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                            "value": "subscribed"
                                                                        },
                                                                        "id": 8585,
                                                                        "name": "Identifier",
                                                                        "src": "28573:10:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8430,
                                                                            "type": "bytes32",
                                                                            "value": "poolid"
                                                                        },
                                                                        "id": 8586,
                                                                        "name": "Identifier",
                                                                        "src": "28584:6:18"
                                                                    }
                                                                ],
                                                                "id": 8588,
                                                                "name": "IndexAccess",
                                                                "src": "28573:18:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8436,
                                                                    "type": "address",
                                                                    "value": "asset"
                                                                },
                                                                "id": 8587,
                                                                "name": "Identifier",
                                                                "src": "28592:5:18"
                                                            }
                                                        ],
                                                        "id": 8589,
                                                        "name": "IndexAccess",
                                                        "src": "28573:25:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 2177,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2367,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 8590,
                                                                        "name": "Identifier",
                                                                        "src": "28601:4:18"
                                                                    }
                                                                ],
                                                                "id": 8591,
                                                                "name": "MemberAccess",
                                                                "src": "28601:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6584,
                                                                                    "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                                    "value": "subscribed"
                                                                                },
                                                                                "id": 8592,
                                                                                "name": "Identifier",
                                                                                "src": "28610:10:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8430,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolid"
                                                                                },
                                                                                "id": 8593,
                                                                                "name": "Identifier",
                                                                                "src": "28621:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8594,
                                                                        "name": "IndexAccess",
                                                                        "src": "28610:18:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8436,
                                                                            "type": "address",
                                                                            "value": "asset"
                                                                        },
                                                                        "id": 8595,
                                                                        "name": "Identifier",
                                                                        "src": "28629:5:18"
                                                                    }
                                                                ],
                                                                "id": 8596,
                                                                "name": "IndexAccess",
                                                                "src": "28610:25:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8494,
                                                                    "type": "uint256",
                                                                    "value": "cashRefund"
                                                                },
                                                                "id": 8597,
                                                                "name": "Identifier",
                                                                "src": "28637:10:18"
                                                            }
                                                        ],
                                                        "id": 8598,
                                                        "name": "FunctionCall",
                                                        "src": "28601:47:18"
                                                    }
                                                ],
                                                "id": 8599,
                                                "name": "Assignment",
                                                "src": "28573:75:18"
                                            }
                                        ],
                                        "id": 8600,
                                        "name": "ExpressionStatement",
                                        "src": "28573:75:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6704,
                                                            "type": "function (bytes32,address,address,uint256,address,uint256,uint256)",
                                                            "value": "refunds"
                                                        },
                                                        "id": 8601,
                                                        "name": "Identifier",
                                                        "src": "28664:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8430,
                                                            "type": "bytes32",
                                                            "value": "poolid"
                                                        },
                                                        "id": 8602,
                                                        "name": "Identifier",
                                                        "src": "28672:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8432,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8603,
                                                        "name": "Identifier",
                                                        "src": "28680:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8497,
                                                            "type": "address",
                                                            "value": "issued"
                                                        },
                                                        "id": 8604,
                                                        "name": "Identifier",
                                                        "src": "28690:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8491,
                                                            "type": "uint256",
                                                            "value": "securityReturned"
                                                        },
                                                        "id": 8605,
                                                        "name": "Identifier",
                                                        "src": "28698:16:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8436,
                                                            "type": "address",
                                                            "value": "asset"
                                                        },
                                                        "id": 8606,
                                                        "name": "Identifier",
                                                        "src": "28716:5:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8494,
                                                            "type": "uint256",
                                                            "value": "cashRefund"
                                                        },
                                                        "id": 8607,
                                                        "name": "Identifier",
                                                        "src": "28723:10:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timestamp",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -4,
                                                                    "type": "block",
                                                                    "value": "block"
                                                                },
                                                                "id": 8608,
                                                                "name": "Identifier",
                                                                "src": "28735:5:18"
                                                            }
                                                        ],
                                                        "id": 8609,
                                                        "name": "MemberAccess",
                                                        "src": "28735:15:18"
                                                    }
                                                ],
                                                "id": 8610,
                                                "name": "FunctionCall",
                                                "src": "28664:87:18"
                                            }
                                        ],
                                        "id": 8611,
                                        "name": "EmitStatement",
                                        "src": "28659:92:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6578,
                                                                            "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                            "value": "subscriberIndex"
                                                                        },
                                                                        "id": 8612,
                                                                        "name": "Identifier",
                                                                        "src": "28794:15:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8430,
                                                                            "type": "bytes32",
                                                                            "value": "poolid"
                                                                        },
                                                                        "id": 8613,
                                                                        "name": "Identifier",
                                                                        "src": "28810:6:18"
                                                                    }
                                                                ],
                                                                "id": 8615,
                                                                "name": "IndexAccess",
                                                                "src": "28794:23:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8432,
                                                                    "type": "address",
                                                                    "value": "investor"
                                                                },
                                                                "id": 8614,
                                                                "name": "Identifier",
                                                                "src": "28818:8:18"
                                                            }
                                                        ],
                                                        "id": 8616,
                                                        "name": "IndexAccess",
                                                        "src": "28794:33:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 8617,
                                                        "name": "Literal",
                                                        "src": "28830:1:18"
                                                    }
                                                ],
                                                "id": 8618,
                                                "name": "Assignment",
                                                "src": "28794:37:18"
                                            }
                                        ],
                                        "id": 8619,
                                        "name": "ExpressionStatement",
                                        "src": "28794:37:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6688,
                                                            "type": "function (bytes32,address,address,uint256,address,uint256,uint256)",
                                                            "value": "allotments"
                                                        },
                                                        "id": 8620,
                                                        "name": "Identifier",
                                                        "src": "28847:10:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8430,
                                                            "type": "bytes32",
                                                            "value": "poolid"
                                                        },
                                                        "id": 8621,
                                                        "name": "Identifier",
                                                        "src": "28858:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8432,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8622,
                                                        "name": "Identifier",
                                                        "src": "28866:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8497,
                                                            "type": "address",
                                                            "value": "issued"
                                                        },
                                                        "id": 8623,
                                                        "name": "Identifier",
                                                        "src": "28876:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8488,
                                                            "type": "uint256",
                                                            "value": "securitiesAlloted"
                                                        },
                                                        "id": 8624,
                                                        "name": "Identifier",
                                                        "src": "28884:17:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8436,
                                                            "type": "address",
                                                            "value": "asset"
                                                        },
                                                        "id": 8625,
                                                        "name": "Identifier",
                                                        "src": "28903:5:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8434,
                                                            "type": "uint256",
                                                            "value": "amnt"
                                                        },
                                                        "id": 8626,
                                                        "name": "Identifier",
                                                        "src": "28910:4:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timestamp",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -4,
                                                                    "type": "block",
                                                                    "value": "block"
                                                                },
                                                                "id": 8627,
                                                                "name": "Identifier",
                                                                "src": "28916:5:18"
                                                            }
                                                        ],
                                                        "id": 8628,
                                                        "name": "MemberAccess",
                                                        "src": "28916:15:18"
                                                    }
                                                ],
                                                "id": 8629,
                                                "name": "FunctionCall",
                                                "src": "28847:85:18"
                                            }
                                        ],
                                        "id": 8630,
                                        "name": "EmitStatement",
                                        "src": "28842:90:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transferFrom",
                                                            "referencedDeclaration": 2919,
                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 8631,
                                                                        "name": "Identifier",
                                                                        "src": "28945:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8497,
                                                                            "type": "address",
                                                                            "value": "issued"
                                                                        },
                                                                        "id": 8632,
                                                                        "name": "Identifier",
                                                                        "src": "28952:6:18"
                                                                    }
                                                                ],
                                                                "id": 8633,
                                                                "name": "FunctionCall",
                                                                "src": "28945:14:18"
                                                            }
                                                        ],
                                                        "id": 8634,
                                                        "name": "MemberAccess",
                                                        "src": "28945:27:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8432,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8635,
                                                        "name": "Identifier",
                                                        "src": "28973:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "owner",
                                                            "referencedDeclaration": 11660,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.token storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6531,
                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                            "value": "mmtokens"
                                                                                        },
                                                                                        "id": 8636,
                                                                                        "name": "Identifier",
                                                                                        "src": "28983:8:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8497,
                                                                                            "type": "address",
                                                                                            "value": "issued"
                                                                                        },
                                                                                        "id": 8637,
                                                                                        "name": "Identifier",
                                                                                        "src": "28992:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8638,
                                                                                "name": "IndexAccess",
                                                                                "src": "28983:16:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8436,
                                                                                    "type": "address",
                                                                                    "value": "asset"
                                                                                },
                                                                                "id": 8639,
                                                                                "name": "Identifier",
                                                                                "src": "29000:5:18"
                                                                            }
                                                                        ],
                                                                        "id": 8640,
                                                                        "name": "IndexAccess",
                                                                        "src": "28983:23:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 8641,
                                                                        "name": "Literal",
                                                                        "src": "29007:1:18"
                                                                    }
                                                                ],
                                                                "id": 8642,
                                                                "name": "IndexAccess",
                                                                "src": "28983:26:18"
                                                            }
                                                        ],
                                                        "id": 8643,
                                                        "name": "MemberAccess",
                                                        "src": "28983:32:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8491,
                                                            "type": "uint256",
                                                            "value": "securityReturned"
                                                        },
                                                        "id": 8644,
                                                        "name": "Identifier",
                                                        "src": "29017:16:18"
                                                    }
                                                ],
                                                "id": 8645,
                                                "name": "FunctionCall",
                                                "src": "28945:89:18"
                                            }
                                        ],
                                        "id": 8646,
                                        "name": "ExpressionStatement",
                                        "src": "28945:89:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transfer",
                                                            "referencedDeclaration": 2887,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 8647,
                                                                        "name": "Identifier",
                                                                        "src": "29045:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8436,
                                                                            "type": "address",
                                                                            "value": "asset"
                                                                        },
                                                                        "id": 8648,
                                                                        "name": "Identifier",
                                                                        "src": "29052:5:18"
                                                                    }
                                                                ],
                                                                "id": 8649,
                                                                "name": "FunctionCall",
                                                                "src": "29045:13:18"
                                                            }
                                                        ],
                                                        "id": 8650,
                                                        "name": "MemberAccess",
                                                        "src": "29045:22:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8432,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8651,
                                                        "name": "Identifier",
                                                        "src": "29068:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8494,
                                                            "type": "uint256",
                                                            "value": "cashRefund"
                                                        },
                                                        "id": 8652,
                                                        "name": "Identifier",
                                                        "src": "29078:10:18"
                                                    }
                                                ],
                                                "id": 8653,
                                                "name": "FunctionCall",
                                                "src": "29045:44:18"
                                            }
                                        ],
                                        "id": 8654,
                                        "name": "ExpressionStatement",
                                        "src": "29045:44:18"
                                    }
                                ],
                                "id": 8655,
                                "name": "Block",
                                "src": "27427:1670:18"
                            }
                        ],
                        "id": 8656,
                        "name": "FunctionDefinition",
                        "src": "27338:1759:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11829
                            ],
                            "functionSelector": "3f099028",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "reject",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Called by issuer to reject subscription to issue by investor\n@param  poolid      identifier for primary issue pool to which investor has subscribed\n@param  investor    address of investor (subscriber)"
                                },
                                "id": 8657,
                                "name": "StructuredDocumentation",
                                "src": "29109:240:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 8663,
                                "name": "OverrideSpecifier",
                                "src": "29406:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolid",
                                            "scope": 8805,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 8658,
                                                "name": "ElementaryTypeName",
                                                "src": "29372:7:18"
                                            }
                                        ],
                                        "id": 8659,
                                        "name": "VariableDeclaration",
                                        "src": "29372:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "investor",
                                            "scope": 8805,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 8660,
                                                "name": "ElementaryTypeName",
                                                "src": "29388:7:18"
                                            }
                                        ],
                                        "id": 8661,
                                        "name": "VariableDeclaration",
                                        "src": "29388:16:18"
                                    }
                                ],
                                "id": 8662,
                                "name": "ParameterList",
                                "src": "29371:34:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 8671,
                                "name": "ParameterList",
                                "src": "29475:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6512,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 8664,
                                        "name": "Identifier",
                                        "src": "29424:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 8665,
                                                "name": "Identifier",
                                                "src": "29441:3:18"
                                            }
                                        ],
                                        "id": 8666,
                                        "name": "MemberAccess",
                                        "src": "29441:10:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "type": "address"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 6592,
                                                    "type": "mapping(bytes32 => address)",
                                                    "value": "poolSecurity"
                                                },
                                                "id": 8667,
                                                "name": "Identifier",
                                                "src": "29453:12:18"
                                            },
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 8659,
                                                    "type": "bytes32",
                                                    "value": "poolid"
                                                },
                                                "id": 8668,
                                                "name": "Identifier",
                                                "src": "29466:6:18"
                                            }
                                        ],
                                        "id": 8669,
                                        "name": "IndexAccess",
                                        "src": "29453:20:18"
                                    }
                                ],
                                "id": 8670,
                                "name": "ModifierInvocation",
                                "src": "29424:50:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8673
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "i",
                                                    "scope": 8804,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8672,
                                                        "name": "ElementaryTypeName",
                                                        "src": "29486:7:18"
                                                    }
                                                ],
                                                "id": 8673,
                                                "name": "VariableDeclaration",
                                                "src": "29486:9:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(address => uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6578,
                                                                    "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                    "value": "subscriberIndex"
                                                                },
                                                                "id": 8674,
                                                                "name": "Identifier",
                                                                "src": "29498:15:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8659,
                                                                    "type": "bytes32",
                                                                    "value": "poolid"
                                                                },
                                                                "id": 8675,
                                                                "name": "Identifier",
                                                                "src": "29514:6:18"
                                                            }
                                                        ],
                                                        "id": 8676,
                                                        "name": "IndexAccess",
                                                        "src": "29498:23:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8661,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8677,
                                                        "name": "Identifier",
                                                        "src": "29522:8:18"
                                                    }
                                                ],
                                                "id": 8678,
                                                "name": "IndexAccess",
                                                "src": "29498:33:18"
                                            }
                                        ],
                                        "id": 8679,
                                        "name": "VariableDeclarationStatement",
                                        "src": "29486:45:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_e2f2c390dc65fbe57761f20efd170b5425064fa5f1d6f055b666c7e32602b996",
                                                                    "typeString": "literal_string \"No subscriber found\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8680,
                                                        "name": "Identifier",
                                                        "src": "29542:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": ">",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8673,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8681,
                                                                "name": "Identifier",
                                                                "src": "29550:1:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 8682,
                                                                "name": "Literal",
                                                                "src": "29552:1:18"
                                                            }
                                                        ],
                                                        "id": 8683,
                                                        "name": "BinaryOperation",
                                                        "src": "29550:3:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "4e6f207375627363726962657220666f756e64",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"No subscriber found\"",
                                                            "value": "No subscriber found"
                                                        },
                                                        "id": 8684,
                                                        "name": "Literal",
                                                        "src": "29555:21:18"
                                                    }
                                                ],
                                                "id": 8685,
                                                "name": "FunctionCall",
                                                "src": "29542:35:18"
                                            }
                                        ],
                                        "id": 8686,
                                        "name": "ExpressionStatement",
                                        "src": "29542:35:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8673,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 8687,
                                                        "name": "Identifier",
                                                        "src": "29588:1:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "-",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8673,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8688,
                                                                "name": "Identifier",
                                                                "src": "29592:1:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "31",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 1",
                                                                    "value": "1"
                                                                },
                                                                "id": 8689,
                                                                "name": "Literal",
                                                                "src": "29594:1:18"
                                                            }
                                                        ],
                                                        "id": 8690,
                                                        "name": "BinaryOperation",
                                                        "src": "29592:3:18"
                                                    }
                                                ],
                                                "id": 8691,
                                                "name": "Assignment",
                                                "src": "29588:7:18"
                                            }
                                        ],
                                        "id": 8692,
                                        "name": "ExpressionStatement",
                                        "src": "29588:7:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_10eba8a3d8966fee286504ebdb526cd9de0cb27fbf20d523deadb65331684b68",
                                                                    "typeString": "literal_string \"Incorrect subscriber for refund\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 8693,
                                                        "name": "Identifier",
                                                        "src": "29606:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "investor",
                                                                    "referencedDeclaration": 11705,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6572,
                                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                            "value": "investors"
                                                                                        },
                                                                                        "id": 8694,
                                                                                        "name": "Identifier",
                                                                                        "src": "29614:9:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8659,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolid"
                                                                                        },
                                                                                        "id": 8695,
                                                                                        "name": "Identifier",
                                                                                        "src": "29624:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8696,
                                                                                "name": "IndexAccess",
                                                                                "src": "29614:17:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8673,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8697,
                                                                                "name": "Identifier",
                                                                                "src": "29632:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 8698,
                                                                        "name": "IndexAccess",
                                                                        "src": "29614:20:18"
                                                                    }
                                                                ],
                                                                "id": 8699,
                                                                "name": "MemberAccess",
                                                                "src": "29614:29:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8661,
                                                                    "type": "address",
                                                                    "value": "investor"
                                                                },
                                                                "id": 8700,
                                                                "name": "Identifier",
                                                                "src": "29645:8:18"
                                                            }
                                                        ],
                                                        "id": 8701,
                                                        "name": "BinaryOperation",
                                                        "src": "29614:39:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "496e636f7272656374207375627363726962657220666f7220726566756e64",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Incorrect subscriber for refund\"",
                                                            "value": "Incorrect subscriber for refund"
                                                        },
                                                        "id": 8702,
                                                        "name": "Literal",
                                                        "src": "29655:33:18"
                                                    }
                                                ],
                                                "id": 8703,
                                                "name": "FunctionCall",
                                                "src": "29606:83:18"
                                            }
                                        ],
                                        "id": 8704,
                                        "name": "ExpressionStatement",
                                        "src": "29606:83:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8706
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "issuedSecurity",
                                                    "scope": 8804,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8705,
                                                        "name": "ElementaryTypeName",
                                                        "src": "29710:7:18"
                                                    }
                                                ],
                                                "id": 8706,
                                                "name": "VariableDeclaration",
                                                "src": "29710:22:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6592,
                                                            "type": "mapping(bytes32 => address)",
                                                            "value": "poolSecurity"
                                                        },
                                                        "id": 8707,
                                                        "name": "Identifier",
                                                        "src": "29735:12:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8659,
                                                            "type": "bytes32",
                                                            "value": "poolid"
                                                        },
                                                        "id": 8708,
                                                        "name": "Identifier",
                                                        "src": "29748:6:18"
                                                    }
                                                ],
                                                "id": 8709,
                                                "name": "IndexAccess",
                                                "src": "29735:20:18"
                                            }
                                        ],
                                        "id": 8710,
                                        "name": "VariableDeclarationStatement",
                                        "src": "29710:45:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8712
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "currencySubscribed",
                                                    "scope": 8804,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8711,
                                                        "name": "ElementaryTypeName",
                                                        "src": "29766:7:18"
                                                    }
                                                ],
                                                "id": 8712,
                                                "name": "VariableDeclaration",
                                                "src": "29766:26:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "asset",
                                                    "referencedDeclaration": 11707,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct IMarketMaker.subscriptions storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6572,
                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                            "value": "investors"
                                                                        },
                                                                        "id": 8713,
                                                                        "name": "Identifier",
                                                                        "src": "29795:9:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8659,
                                                                            "type": "bytes32",
                                                                            "value": "poolid"
                                                                        },
                                                                        "id": 8714,
                                                                        "name": "Identifier",
                                                                        "src": "29805:6:18"
                                                                    }
                                                                ],
                                                                "id": 8715,
                                                                "name": "IndexAccess",
                                                                "src": "29795:17:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8673,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8716,
                                                                "name": "Identifier",
                                                                "src": "29813:1:18"
                                                            }
                                                        ],
                                                        "id": 8717,
                                                        "name": "IndexAccess",
                                                        "src": "29795:20:18"
                                                    }
                                                ],
                                                "id": 8718,
                                                "name": "MemberAccess",
                                                "src": "29795:26:18"
                                            }
                                        ],
                                        "id": 8719,
                                        "name": "VariableDeclarationStatement",
                                        "src": "29766:55:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6584,
                                                                            "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                            "value": "subscribed"
                                                                        },
                                                                        "id": 8720,
                                                                        "name": "Identifier",
                                                                        "src": "29841:10:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8659,
                                                                            "type": "bytes32",
                                                                            "value": "poolid"
                                                                        },
                                                                        "id": 8721,
                                                                        "name": "Identifier",
                                                                        "src": "29852:6:18"
                                                                    }
                                                                ],
                                                                "id": 8723,
                                                                "name": "IndexAccess",
                                                                "src": "29841:18:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8712,
                                                                    "type": "address",
                                                                    "value": "currencySubscribed"
                                                                },
                                                                "id": 8722,
                                                                "name": "Identifier",
                                                                "src": "29860:18:18"
                                                            }
                                                        ],
                                                        "id": 8724,
                                                        "name": "IndexAccess",
                                                        "src": "29841:38:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 2177,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2367,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 8725,
                                                                        "name": "Identifier",
                                                                        "src": "29882:4:18"
                                                                    }
                                                                ],
                                                                "id": 8726,
                                                                "name": "MemberAccess",
                                                                "src": "29882:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6584,
                                                                                    "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                                    "value": "subscribed"
                                                                                },
                                                                                "id": 8727,
                                                                                "name": "Identifier",
                                                                                "src": "29891:10:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8659,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolid"
                                                                                },
                                                                                "id": 8728,
                                                                                "name": "Identifier",
                                                                                "src": "29902:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8729,
                                                                        "name": "IndexAccess",
                                                                        "src": "29891:18:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8712,
                                                                            "type": "address",
                                                                            "value": "currencySubscribed"
                                                                        },
                                                                        "id": 8730,
                                                                        "name": "Identifier",
                                                                        "src": "29910:18:18"
                                                                    }
                                                                ],
                                                                "id": 8731,
                                                                "name": "IndexAccess",
                                                                "src": "29891:38:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "amount",
                                                                    "referencedDeclaration": 11711,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6572,
                                                                                            "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                            "value": "investors"
                                                                                        },
                                                                                        "id": 8732,
                                                                                        "name": "Identifier",
                                                                                        "src": "29931:9:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8659,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolid"
                                                                                        },
                                                                                        "id": 8733,
                                                                                        "name": "Identifier",
                                                                                        "src": "29941:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8734,
                                                                                "name": "IndexAccess",
                                                                                "src": "29931:17:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8673,
                                                                                    "type": "uint256",
                                                                                    "value": "i"
                                                                                },
                                                                                "id": 8735,
                                                                                "name": "Identifier",
                                                                                "src": "29949:1:18"
                                                                            }
                                                                        ],
                                                                        "id": 8736,
                                                                        "name": "IndexAccess",
                                                                        "src": "29931:20:18"
                                                                    }
                                                                ],
                                                                "id": 8737,
                                                                "name": "MemberAccess",
                                                                "src": "29931:27:18"
                                                            }
                                                        ],
                                                        "id": 8738,
                                                        "name": "FunctionCall",
                                                        "src": "29882:77:18"
                                                    }
                                                ],
                                                "id": 8739,
                                                "name": "Assignment",
                                                "src": "29841:118:18"
                                            }
                                        ],
                                        "id": 8740,
                                        "name": "ExpressionStatement",
                                        "src": "29841:118:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6704,
                                                            "type": "function (bytes32,address,address,uint256,address,uint256,uint256)",
                                                            "value": "refunds"
                                                        },
                                                        "id": 8741,
                                                        "name": "Identifier",
                                                        "src": "29975:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8659,
                                                            "type": "bytes32",
                                                            "value": "poolid"
                                                        },
                                                        "id": 8742,
                                                        "name": "Identifier",
                                                        "src": "29983:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8661,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8743,
                                                        "name": "Identifier",
                                                        "src": "29991:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8706,
                                                            "type": "address",
                                                            "value": "issuedSecurity"
                                                        },
                                                        "id": 8744,
                                                        "name": "Identifier",
                                                        "src": "30001:14:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "traded",
                                                            "referencedDeclaration": 11713,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6572,
                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                    "value": "investors"
                                                                                },
                                                                                "id": 8745,
                                                                                "name": "Identifier",
                                                                                "src": "30017:9:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8659,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolid"
                                                                                },
                                                                                "id": 8746,
                                                                                "name": "Identifier",
                                                                                "src": "30027:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8747,
                                                                        "name": "IndexAccess",
                                                                        "src": "30017:17:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8673,
                                                                            "type": "uint256",
                                                                            "value": "i"
                                                                        },
                                                                        "id": 8748,
                                                                        "name": "Identifier",
                                                                        "src": "30035:1:18"
                                                                    }
                                                                ],
                                                                "id": 8749,
                                                                "name": "IndexAccess",
                                                                "src": "30017:20:18"
                                                            }
                                                        ],
                                                        "id": 8750,
                                                        "name": "MemberAccess",
                                                        "src": "30017:27:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8712,
                                                            "type": "address",
                                                            "value": "currencySubscribed"
                                                        },
                                                        "id": 8751,
                                                        "name": "Identifier",
                                                        "src": "30046:18:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "amount",
                                                            "referencedDeclaration": 11711,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6572,
                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                    "value": "investors"
                                                                                },
                                                                                "id": 8752,
                                                                                "name": "Identifier",
                                                                                "src": "30066:9:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8659,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolid"
                                                                                },
                                                                                "id": 8753,
                                                                                "name": "Identifier",
                                                                                "src": "30076:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8754,
                                                                        "name": "IndexAccess",
                                                                        "src": "30066:17:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8673,
                                                                            "type": "uint256",
                                                                            "value": "i"
                                                                        },
                                                                        "id": 8755,
                                                                        "name": "Identifier",
                                                                        "src": "30084:1:18"
                                                                    }
                                                                ],
                                                                "id": 8756,
                                                                "name": "IndexAccess",
                                                                "src": "30066:20:18"
                                                            }
                                                        ],
                                                        "id": 8757,
                                                        "name": "MemberAccess",
                                                        "src": "30066:27:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timestamp",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -4,
                                                                    "type": "block",
                                                                    "value": "block"
                                                                },
                                                                "id": 8758,
                                                                "name": "Identifier",
                                                                "src": "30095:5:18"
                                                            }
                                                        ],
                                                        "id": 8759,
                                                        "name": "MemberAccess",
                                                        "src": "30095:15:18"
                                                    }
                                                ],
                                                "id": 8760,
                                                "name": "FunctionCall",
                                                "src": "29975:136:18"
                                            }
                                        ],
                                        "id": 8761,
                                        "name": "EmitStatement",
                                        "src": "29970:141:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6578,
                                                                            "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                            "value": "subscriberIndex"
                                                                        },
                                                                        "id": 8762,
                                                                        "name": "Identifier",
                                                                        "src": "30136:15:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8659,
                                                                            "type": "bytes32",
                                                                            "value": "poolid"
                                                                        },
                                                                        "id": 8763,
                                                                        "name": "Identifier",
                                                                        "src": "30152:6:18"
                                                                    }
                                                                ],
                                                                "id": 8765,
                                                                "name": "IndexAccess",
                                                                "src": "30136:23:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8661,
                                                                    "type": "address",
                                                                    "value": "investor"
                                                                },
                                                                "id": 8764,
                                                                "name": "Identifier",
                                                                "src": "30160:8:18"
                                                            }
                                                        ],
                                                        "id": 8766,
                                                        "name": "IndexAccess",
                                                        "src": "30136:33:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 8767,
                                                        "name": "Literal",
                                                        "src": "30172:1:18"
                                                    }
                                                ],
                                                "id": 8768,
                                                "name": "Assignment",
                                                "src": "30136:37:18"
                                            }
                                        ],
                                        "id": 8769,
                                        "name": "ExpressionStatement",
                                        "src": "30136:37:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transferFrom",
                                                            "referencedDeclaration": 2919,
                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 8770,
                                                                        "name": "Identifier",
                                                                        "src": "30188:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8706,
                                                                            "type": "address",
                                                                            "value": "issuedSecurity"
                                                                        },
                                                                        "id": 8771,
                                                                        "name": "Identifier",
                                                                        "src": "30195:14:18"
                                                                    }
                                                                ],
                                                                "id": 8772,
                                                                "name": "FunctionCall",
                                                                "src": "30188:22:18"
                                                            }
                                                        ],
                                                        "id": 8773,
                                                        "name": "MemberAccess",
                                                        "src": "30188:35:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8661,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8774,
                                                        "name": "Identifier",
                                                        "src": "30224:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "owner",
                                                            "referencedDeclaration": 11660,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.token storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6531,
                                                                                            "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                            "value": "mmtokens"
                                                                                        },
                                                                                        "id": 8775,
                                                                                        "name": "Identifier",
                                                                                        "src": "30234:8:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8706,
                                                                                            "type": "address",
                                                                                            "value": "issuedSecurity"
                                                                                        },
                                                                                        "id": 8776,
                                                                                        "name": "Identifier",
                                                                                        "src": "30243:14:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8777,
                                                                                "name": "IndexAccess",
                                                                                "src": "30234:24:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8712,
                                                                                    "type": "address",
                                                                                    "value": "currencySubscribed"
                                                                                },
                                                                                "id": 8778,
                                                                                "name": "Identifier",
                                                                                "src": "30259:18:18"
                                                                            }
                                                                        ],
                                                                        "id": 8779,
                                                                        "name": "IndexAccess",
                                                                        "src": "30234:44:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 8780,
                                                                        "name": "Literal",
                                                                        "src": "30279:1:18"
                                                                    }
                                                                ],
                                                                "id": 8781,
                                                                "name": "IndexAccess",
                                                                "src": "30234:47:18"
                                                            }
                                                        ],
                                                        "id": 8782,
                                                        "name": "MemberAccess",
                                                        "src": "30234:53:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "traded",
                                                            "referencedDeclaration": 11713,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6572,
                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                    "value": "investors"
                                                                                },
                                                                                "id": 8783,
                                                                                "name": "Identifier",
                                                                                "src": "30289:9:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8659,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolid"
                                                                                },
                                                                                "id": 8784,
                                                                                "name": "Identifier",
                                                                                "src": "30299:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8785,
                                                                        "name": "IndexAccess",
                                                                        "src": "30289:17:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8673,
                                                                            "type": "uint256",
                                                                            "value": "i"
                                                                        },
                                                                        "id": 8786,
                                                                        "name": "Identifier",
                                                                        "src": "30307:1:18"
                                                                    }
                                                                ],
                                                                "id": 8787,
                                                                "name": "IndexAccess",
                                                                "src": "30289:20:18"
                                                            }
                                                        ],
                                                        "id": 8788,
                                                        "name": "MemberAccess",
                                                        "src": "30289:27:18"
                                                    }
                                                ],
                                                "id": 8789,
                                                "name": "FunctionCall",
                                                "src": "30188:129:18"
                                            }
                                        ],
                                        "id": 8790,
                                        "name": "ExpressionStatement",
                                        "src": "30188:129:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transfer",
                                                            "referencedDeclaration": 2887,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 8791,
                                                                        "name": "Identifier",
                                                                        "src": "30328:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8712,
                                                                            "type": "address",
                                                                            "value": "currencySubscribed"
                                                                        },
                                                                        "id": 8792,
                                                                        "name": "Identifier",
                                                                        "src": "30335:18:18"
                                                                    }
                                                                ],
                                                                "id": 8793,
                                                                "name": "FunctionCall",
                                                                "src": "30328:26:18"
                                                            }
                                                        ],
                                                        "id": 8794,
                                                        "name": "MemberAccess",
                                                        "src": "30328:35:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8661,
                                                            "type": "address",
                                                            "value": "investor"
                                                        },
                                                        "id": 8795,
                                                        "name": "Identifier",
                                                        "src": "30364:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "amount",
                                                            "referencedDeclaration": 11711,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.subscriptions storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6572,
                                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                                    "value": "investors"
                                                                                },
                                                                                "id": 8796,
                                                                                "name": "Identifier",
                                                                                "src": "30374:9:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8659,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolid"
                                                                                },
                                                                                "id": 8797,
                                                                                "name": "Identifier",
                                                                                "src": "30384:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8798,
                                                                        "name": "IndexAccess",
                                                                        "src": "30374:17:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8673,
                                                                            "type": "uint256",
                                                                            "value": "i"
                                                                        },
                                                                        "id": 8799,
                                                                        "name": "Identifier",
                                                                        "src": "30392:1:18"
                                                                    }
                                                                ],
                                                                "id": 8800,
                                                                "name": "IndexAccess",
                                                                "src": "30374:20:18"
                                                            }
                                                        ],
                                                        "id": 8801,
                                                        "name": "MemberAccess",
                                                        "src": "30374:27:18"
                                                    }
                                                ],
                                                "id": 8802,
                                                "name": "FunctionCall",
                                                "src": "30328:74:18"
                                            }
                                        ],
                                        "id": 8803,
                                        "name": "ExpressionStatement",
                                        "src": "30328:74:18"
                                    }
                                ],
                                "id": 8804,
                                "name": "Block",
                                "src": "29475:952:18"
                            }
                        ],
                        "id": 8805,
                        "name": "FunctionDefinition",
                        "src": "29356:1071:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11834
                            ],
                            "functionSelector": "987757dd",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "settle",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Called by product issuer to settle distribution of fee income arising from investment underwritten in the primary issue pool\n@param  poolId  identifier for primary issue pool"
                                },
                                "id": 8806,
                                "name": "StructuredDocumentation",
                                "src": "30443:205:18"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 8810,
                                "name": "OverrideSpecifier",
                                "src": "30688:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 8833,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 8807,
                                                "name": "ElementaryTypeName",
                                                "src": "30672:7:18"
                                            }
                                        ],
                                        "id": 8808,
                                        "name": "VariableDeclaration",
                                        "src": "30672:14:18"
                                    }
                                ],
                                "id": 8809,
                                "name": "ParameterList",
                                "src": "30671:16:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 8818,
                                "name": "ParameterList",
                                "src": "30757:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 6512,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 8811,
                                        "name": "Identifier",
                                        "src": "30706:16:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 8812,
                                                "name": "Identifier",
                                                "src": "30723:3:18"
                                            }
                                        ],
                                        "id": 8813,
                                        "name": "MemberAccess",
                                        "src": "30723:10:18"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "type": "address"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 6592,
                                                    "type": "mapping(bytes32 => address)",
                                                    "value": "poolSecurity"
                                                },
                                                "id": 8814,
                                                "name": "Identifier",
                                                "src": "30735:12:18"
                                            },
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 8808,
                                                    "type": "bytes32",
                                                    "value": "poolId"
                                                },
                                                "id": 8815,
                                                "name": "Identifier",
                                                "src": "30748:6:18"
                                            }
                                        ],
                                        "id": 8816,
                                        "name": "IndexAccess",
                                        "src": "30735:20:18"
                                    }
                                ],
                                "id": 8817,
                                "name": "ModifierInvocation",
                                "src": "30706:50:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "tuple()"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "components": [
                                                                null,
                                                                null,
                                                                {
                                                                    "attributes": {
                                                                        "overloadedDeclarations": [
                                                                            null
                                                                        ],
                                                                        "referencedDeclaration": 6610,
                                                                        "type": "uint256",
                                                                        "value": "revshare"
                                                                    },
                                                                    "id": 8819,
                                                                    "name": "Identifier",
                                                                    "src": "30773:8:18"
                                                                },
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isInlineArray": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "tuple(,,uint256,)"
                                                        },
                                                        "id": 8820,
                                                        "name": "TupleExpression",
                                                        "src": "30768:15:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "arguments": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "tuple(uint256,uint256,uint256,uint256)",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        null
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getRevenueShares",
                                                                    "referencedDeclaration": 10943,
                                                                    "type": "function () view external returns (uint256,uint256,uint256,uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IDistribution",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 11001,
                                                                                    "type": "type(contract IDistribution)",
                                                                                    "value": "IDistribution"
                                                                                },
                                                                                "id": 8821,
                                                                                "name": "Identifier",
                                                                                "src": "30786:13:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6414,
                                                                                    "type": "address",
                                                                                    "value": "distribution"
                                                                                },
                                                                                "id": 8822,
                                                                                "name": "Identifier",
                                                                                "src": "30800:12:18"
                                                                            }
                                                                        ],
                                                                        "id": 8823,
                                                                        "name": "FunctionCall",
                                                                        "src": "30786:27:18"
                                                                    }
                                                                ],
                                                                "id": 8824,
                                                                "name": "MemberAccess",
                                                                "src": "30786:44:18"
                                                            }
                                                        ],
                                                        "id": 8825,
                                                        "name": "FunctionCall",
                                                        "src": "30786:46:18"
                                                    }
                                                ],
                                                "id": 8826,
                                                "name": "Assignment",
                                                "src": "30768:64:18"
                                            }
                                        ],
                                        "id": 8827,
                                        "name": "ExpressionStatement",
                                        "src": "30768:64:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9136,
                                                            "type": "function (bytes32)",
                                                            "value": "onSettle"
                                                        },
                                                        "id": 8828,
                                                        "name": "Identifier",
                                                        "src": "30843:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8808,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 8829,
                                                        "name": "Identifier",
                                                        "src": "30852:6:18"
                                                    }
                                                ],
                                                "id": 8830,
                                                "name": "FunctionCall",
                                                "src": "30843:16:18"
                                            }
                                        ],
                                        "id": 8831,
                                        "name": "ExpressionStatement",
                                        "src": "30843:16:18"
                                    }
                                ],
                                "id": 8832,
                                "name": "Block",
                                "src": "30757:110:18"
                            }
                        ],
                        "id": 8833,
                        "name": "FunctionDefinition",
                        "src": "30656:211:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "onSettle",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 9136,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 8834,
                                                "name": "ElementaryTypeName",
                                                "src": "30897:7:18"
                                            }
                                        ],
                                        "id": 8835,
                                        "name": "VariableDeclaration",
                                        "src": "30897:14:18"
                                    }
                                ],
                                "id": 8836,
                                "name": "ParameterList",
                                "src": "30896:16:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 8837,
                                "name": "ParameterList",
                                "src": "30921:0:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8839
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "currency",
                                                    "scope": 9135,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8838,
                                                        "name": "ElementaryTypeName",
                                                        "src": "30940:7:18"
                                                    }
                                                ],
                                                "id": 8839,
                                                "name": "VariableDeclaration",
                                                "src": "30940:16:18"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getCurrency",
                                                            "referencedDeclaration": 11995,
                                                            "type": "function () view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IPrimaryIssuePool",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12016,
                                                                            "type": "type(contract IPrimaryIssuePool)",
                                                                            "value": "IPrimaryIssuePool"
                                                                        },
                                                                        "id": 8840,
                                                                        "name": "Identifier",
                                                                        "src": "30959:17:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6588,
                                                                                    "type": "mapping(bytes32 => address)",
                                                                                    "value": "pools"
                                                                                },
                                                                                "id": 8841,
                                                                                "name": "Identifier",
                                                                                "src": "30977:5:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8835,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolId"
                                                                                },
                                                                                "id": 8842,
                                                                                "name": "Identifier",
                                                                                "src": "30983:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8843,
                                                                        "name": "IndexAccess",
                                                                        "src": "30977:13:18"
                                                                    }
                                                                ],
                                                                "id": 8844,
                                                                "name": "FunctionCall",
                                                                "src": "30959:32:18"
                                                            }
                                                        ],
                                                        "id": 8845,
                                                        "name": "MemberAccess",
                                                        "src": "30959:44:18"
                                                    }
                                                ],
                                                "id": 8846,
                                                "name": "FunctionCall",
                                                "src": "30959:46:18"
                                            }
                                        ],
                                        "id": 8847,
                                        "name": "VariableDeclarationStatement",
                                        "src": "30940:65:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8849
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "issuer",
                                                    "scope": 9135,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 8848,
                                                        "name": "ElementaryTypeName",
                                                        "src": "31017:7:18"
                                                    }
                                                ],
                                                "id": 8849,
                                                "name": "VariableDeclaration",
                                                "src": "31017:14:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "owner",
                                                    "referencedDeclaration": 11660,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct IMarketMaker.token storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.token storage ref[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => struct IMarketMaker.token storage ref[] storage ref)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6531,
                                                                                    "type": "mapping(address => mapping(address => struct IMarketMaker.token storage ref[] storage ref))",
                                                                                    "value": "mmtokens"
                                                                                },
                                                                                "id": 8850,
                                                                                "name": "Identifier",
                                                                                "src": "31034:8:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6592,
                                                                                            "type": "mapping(bytes32 => address)",
                                                                                            "value": "poolSecurity"
                                                                                        },
                                                                                        "id": 8851,
                                                                                        "name": "Identifier",
                                                                                        "src": "31043:12:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8835,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolId"
                                                                                        },
                                                                                        "id": 8852,
                                                                                        "name": "Identifier",
                                                                                        "src": "31056:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8853,
                                                                                "name": "IndexAccess",
                                                                                "src": "31043:20:18"
                                                                            }
                                                                        ],
                                                                        "id": 8854,
                                                                        "name": "IndexAccess",
                                                                        "src": "31034:30:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8839,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 8855,
                                                                        "name": "Identifier",
                                                                        "src": "31065:8:18"
                                                                    }
                                                                ],
                                                                "id": 8856,
                                                                "name": "IndexAccess",
                                                                "src": "31034:40:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 8857,
                                                                "name": "Literal",
                                                                "src": "31075:1:18"
                                                            }
                                                        ],
                                                        "id": 8858,
                                                        "name": "IndexAccess",
                                                        "src": "31034:43:18"
                                                    }
                                                ],
                                                "id": 8859,
                                                "name": "MemberAccess",
                                                "src": "31034:49:18"
                                            }
                                        ],
                                        "id": 8860,
                                        "name": "VariableDeclarationStatement",
                                        "src": "31017:66:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8862
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "subscription",
                                                    "scope": 9135,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8861,
                                                        "name": "ElementaryTypeName",
                                                        "src": "31094:7:18"
                                                    }
                                                ],
                                                "id": 8862,
                                                "name": "VariableDeclaration",
                                                "src": "31094:20:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9282,
                                                            "type": "function (uint256,uint256) pure returns (uint256)",
                                                            "value": "_upscale"
                                                        },
                                                        "id": 8863,
                                                        "name": "Identifier",
                                                        "src": "31117:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6584,
                                                                            "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                            "value": "subscribed"
                                                                        },
                                                                        "id": 8864,
                                                                        "name": "Identifier",
                                                                        "src": "31126:10:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8835,
                                                                            "type": "bytes32",
                                                                            "value": "poolId"
                                                                        },
                                                                        "id": 8865,
                                                                        "name": "Identifier",
                                                                        "src": "31137:6:18"
                                                                    }
                                                                ],
                                                                "id": 8866,
                                                                "name": "IndexAccess",
                                                                "src": "31126:18:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8839,
                                                                    "type": "address",
                                                                    "value": "currency"
                                                                },
                                                                "id": 8867,
                                                                "name": "Identifier",
                                                                "src": "31145:8:18"
                                                            }
                                                        ],
                                                        "id": 8868,
                                                        "name": "IndexAccess",
                                                        "src": "31126:28:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9248,
                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                    "value": "_computeScalingFactor"
                                                                },
                                                                "id": 8869,
                                                                "name": "Identifier",
                                                                "src": "31156:21:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 8870,
                                                                        "name": "Identifier",
                                                                        "src": "31178:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8839,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 8871,
                                                                        "name": "Identifier",
                                                                        "src": "31185:8:18"
                                                                    }
                                                                ],
                                                                "id": 8872,
                                                                "name": "FunctionCall",
                                                                "src": "31178:16:18"
                                                            }
                                                        ],
                                                        "id": 8873,
                                                        "name": "FunctionCall",
                                                        "src": "31156:39:18"
                                                    }
                                                ],
                                                "id": 8874,
                                                "name": "FunctionCall",
                                                "src": "31117:79:18"
                                            }
                                        ],
                                        "id": 8875,
                                        "name": "VariableDeclarationStatement",
                                        "src": "31094:102:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8877
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "issuingFee",
                                                    "scope": 9135,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8876,
                                                        "name": "ElementaryTypeName",
                                                        "src": "31207:7:18"
                                                    }
                                                ],
                                                "id": 8877,
                                                "name": "VariableDeclaration",
                                                "src": "31207:18:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6608,
                                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                                    "value": "customFee"
                                                                                },
                                                                                "id": 8878,
                                                                                "name": "Identifier",
                                                                                "src": "31228:9:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6592,
                                                                                            "type": "mapping(bytes32 => address)",
                                                                                            "value": "poolSecurity"
                                                                                        },
                                                                                        "id": 8879,
                                                                                        "name": "Identifier",
                                                                                        "src": "31238:12:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8835,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolId"
                                                                                        },
                                                                                        "id": 8880,
                                                                                        "name": "Identifier",
                                                                                        "src": "31251:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8881,
                                                                                "name": "IndexAccess",
                                                                                "src": "31238:20:18"
                                                                            }
                                                                        ],
                                                                        "id": 8882,
                                                                        "name": "IndexAccess",
                                                                        "src": "31228:31:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8839,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 8883,
                                                                        "name": "Identifier",
                                                                        "src": "31260:8:18"
                                                                    }
                                                                ],
                                                                "id": 8884,
                                                                "name": "IndexAccess",
                                                                "src": "31228:41:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 8885,
                                                                "name": "Literal",
                                                                "src": "31271:1:18"
                                                            }
                                                        ],
                                                        "id": 8886,
                                                        "name": "BinaryOperation",
                                                        "src": "31228:44:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "mulDown",
                                                                    "referencedDeclaration": 537,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 780,
                                                                            "type": "type(library FixedPoint)",
                                                                            "value": "FixedPoint"
                                                                        },
                                                                        "id": 8887,
                                                                        "name": "Identifier",
                                                                        "src": "31275:10:18"
                                                                    }
                                                                ],
                                                                "id": 8888,
                                                                "name": "MemberAccess",
                                                                "src": "31275:18:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8862,
                                                                    "type": "uint256",
                                                                    "value": "subscription"
                                                                },
                                                                "id": 8889,
                                                                "name": "Identifier",
                                                                "src": "31294:12:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6395,
                                                                    "type": "uint256",
                                                                    "value": "swapFeePercentage"
                                                                },
                                                                "id": 8890,
                                                                "name": "Identifier",
                                                                "src": "31308:17:18"
                                                            }
                                                        ],
                                                        "id": 8891,
                                                        "name": "FunctionCall",
                                                        "src": "31275:51:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "mulDown",
                                                                    "referencedDeclaration": 537,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 780,
                                                                            "type": "type(library FixedPoint)",
                                                                            "value": "FixedPoint"
                                                                        },
                                                                        "id": 8892,
                                                                        "name": "Identifier",
                                                                        "src": "31379:10:18"
                                                                    }
                                                                ],
                                                                "id": 8893,
                                                                "name": "MemberAccess",
                                                                "src": "31379:18:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8862,
                                                                    "type": "uint256",
                                                                    "value": "subscription"
                                                                },
                                                                "id": 8894,
                                                                "name": "Identifier",
                                                                "src": "31398:12:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6608,
                                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                                    "value": "customFee"
                                                                                },
                                                                                "id": 8895,
                                                                                "name": "Identifier",
                                                                                "src": "31412:9:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6592,
                                                                                            "type": "mapping(bytes32 => address)",
                                                                                            "value": "poolSecurity"
                                                                                        },
                                                                                        "id": 8896,
                                                                                        "name": "Identifier",
                                                                                        "src": "31422:12:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8835,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolId"
                                                                                        },
                                                                                        "id": 8897,
                                                                                        "name": "Identifier",
                                                                                        "src": "31435:6:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8898,
                                                                                "name": "IndexAccess",
                                                                                "src": "31422:20:18"
                                                                            }
                                                                        ],
                                                                        "id": 8899,
                                                                        "name": "IndexAccess",
                                                                        "src": "31412:31:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8839,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 8900,
                                                                        "name": "Identifier",
                                                                        "src": "31444:8:18"
                                                                    }
                                                                ],
                                                                "id": 8901,
                                                                "name": "IndexAccess",
                                                                "src": "31412:41:18"
                                                            }
                                                        ],
                                                        "id": 8902,
                                                        "name": "FunctionCall",
                                                        "src": "31379:75:18"
                                                    }
                                                ],
                                                "id": 8903,
                                                "name": "Conditional",
                                                "src": "31228:226:18"
                                            }
                                        ],
                                        "id": 8904,
                                        "name": "VariableDeclarationStatement",
                                        "src": "31207:247:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8906
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "prorataLiquidityProvided",
                                                    "scope": 9135,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8905,
                                                        "name": "ElementaryTypeName",
                                                        "src": "31465:7:18"
                                                    }
                                                ],
                                                "id": 8906,
                                                "name": "VariableDeclaration",
                                                "src": "31465:32:18"
                                            },
                                            {
                                                "attributes": {
                                                    "hexvalue": "30",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "token": "number",
                                                    "type": "int_const 0",
                                                    "value": "0"
                                                },
                                                "id": 8907,
                                                "name": "Literal",
                                                "src": "31499:1:18"
                                            }
                                        ],
                                        "id": 8908,
                                        "name": "VariableDeclarationStatement",
                                        "src": "31465:35:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                8910
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "underwritingFee",
                                                    "scope": 9135,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 8909,
                                                        "name": "ElementaryTypeName",
                                                        "src": "31511:7:18"
                                                    }
                                                ],
                                                "id": 8910,
                                                "name": "VariableDeclaration",
                                                "src": "31511:23:18"
                                            },
                                            {
                                                "attributes": {
                                                    "hexvalue": "30",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "token": "number",
                                                    "type": "int_const 0",
                                                    "value": "0"
                                                },
                                                "id": 8911,
                                                "name": "Literal",
                                                "src": "31537:1:18"
                                            }
                                        ],
                                        "id": 8912,
                                        "name": "VariableDeclarationStatement",
                                        "src": "31511:27:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        8914
                                                    ]
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "mutability": "mutable",
                                                            "name": "i",
                                                            "scope": 9081,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 8913,
                                                                "name": "ElementaryTypeName",
                                                                "src": "31561:4:18"
                                                            }
                                                        ],
                                                        "id": 8914,
                                                        "name": "VariableDeclaration",
                                                        "src": "31561:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "30",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 0",
                                                            "value": "0"
                                                        },
                                                        "id": 8915,
                                                        "name": "Literal",
                                                        "src": "31568:1:18"
                                                    }
                                                ],
                                                "id": 8916,
                                                "name": "VariableDeclarationStatement",
                                                "src": "31561:8:18"
                                            },
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8914,
                                                            "type": "uint256",
                                                            "value": "i"
                                                        },
                                                        "id": 8917,
                                                        "name": "Identifier",
                                                        "src": "31571:1:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6553,
                                                                            "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                            "value": "liquidityProviders"
                                                                        },
                                                                        "id": 8918,
                                                                        "name": "Identifier",
                                                                        "src": "31573:18:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6592,
                                                                                    "type": "mapping(bytes32 => address)",
                                                                                    "value": "poolSecurity"
                                                                                },
                                                                                "id": 8919,
                                                                                "name": "Identifier",
                                                                                "src": "31592:12:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8835,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolId"
                                                                                },
                                                                                "id": 8920,
                                                                                "name": "Identifier",
                                                                                "src": "31605:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 8921,
                                                                        "name": "IndexAccess",
                                                                        "src": "31592:20:18"
                                                                    }
                                                                ],
                                                                "id": 8922,
                                                                "name": "IndexAccess",
                                                                "src": "31573:40:18"
                                                            }
                                                        ],
                                                        "id": 8923,
                                                        "name": "MemberAccess",
                                                        "src": "31573:47:18"
                                                    }
                                                ],
                                                "id": 8924,
                                                "name": "BinaryOperation",
                                                "src": "31571:49:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8914,
                                                                    "type": "uint256",
                                                                    "value": "i"
                                                                },
                                                                "id": 8925,
                                                                "name": "Identifier",
                                                                "src": "31622:1:18"
                                                            }
                                                        ],
                                                        "id": 8926,
                                                        "name": "UnaryOperation",
                                                        "src": "31622:3:18"
                                                    }
                                                ],
                                                "id": 8927,
                                                "name": "ExpressionStatement",
                                                "src": "31622:3:18"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8906,
                                                                            "type": "uint256",
                                                                            "value": "prorataLiquidityProvided"
                                                                        },
                                                                        "id": 8928,
                                                                        "name": "Identifier",
                                                                        "src": "31641:24:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "divDown",
                                                                                    "referencedDeclaration": 631,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 780,
                                                                                            "type": "type(library FixedPoint)",
                                                                                            "value": "FixedPoint"
                                                                                        },
                                                                                        "id": 8929,
                                                                                        "name": "Identifier",
                                                                                        "src": "31668:10:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8930,
                                                                                "name": "MemberAccess",
                                                                                "src": "31668:18:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "underwritten",
                                                                                    "referencedDeclaration": 11690,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.lp storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6553,
                                                                                                            "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                                                            "value": "liquidityProviders"
                                                                                                        },
                                                                                                        "id": 8931,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "31687:18:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 6592,
                                                                                                                    "type": "mapping(bytes32 => address)",
                                                                                                                    "value": "poolSecurity"
                                                                                                                },
                                                                                                                "id": 8932,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "31706:12:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8835,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "poolId"
                                                                                                                },
                                                                                                                "id": 8933,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "31719:6:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 8934,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "31706:20:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8935,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "31687:40:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8914,
                                                                                                    "type": "uint256",
                                                                                                    "value": "i"
                                                                                                },
                                                                                                "id": 8936,
                                                                                                "name": "Identifier",
                                                                                                "src": "31728:1:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8937,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "31687:43:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8938,
                                                                                "name": "MemberAccess",
                                                                                "src": "31687:56:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6557,
                                                                                            "type": "mapping(address => uint256)",
                                                                                            "value": "totalUnderwritten"
                                                                                        },
                                                                                        "id": 8939,
                                                                                        "name": "Identifier",
                                                                                        "src": "31745:17:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6592,
                                                                                                    "type": "mapping(bytes32 => address)",
                                                                                                    "value": "poolSecurity"
                                                                                                },
                                                                                                "id": 8940,
                                                                                                "name": "Identifier",
                                                                                                "src": "31763:12:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8835,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "poolId"
                                                                                                },
                                                                                                "id": 8941,
                                                                                                "name": "Identifier",
                                                                                                "src": "31776:6:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8942,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "31763:20:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8943,
                                                                                "name": "IndexAccess",
                                                                                "src": "31745:39:18"
                                                                            }
                                                                        ],
                                                                        "id": 8944,
                                                                        "name": "FunctionCall",
                                                                        "src": "31668:117:18"
                                                                    }
                                                                ],
                                                                "id": 8945,
                                                                "name": "Assignment",
                                                                "src": "31641:144:18"
                                                            }
                                                        ],
                                                        "id": 8946,
                                                        "name": "ExpressionStatement",
                                                        "src": "31641:144:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8910,
                                                                            "type": "uint256",
                                                                            "value": "underwritingFee"
                                                                        },
                                                                        "id": 8947,
                                                                        "name": "Identifier",
                                                                        "src": "31800:15:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "divDown",
                                                                                    "referencedDeclaration": 631,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 780,
                                                                                            "type": "type(library FixedPoint)",
                                                                                            "value": "FixedPoint"
                                                                                        },
                                                                                        "id": 8948,
                                                                                        "name": "Identifier",
                                                                                        "src": "31818:10:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8949,
                                                                                "name": "MemberAccess",
                                                                                "src": "31818:18:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "mulDown",
                                                                                            "referencedDeclaration": 537,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 780,
                                                                                                    "type": "type(library FixedPoint)",
                                                                                                    "value": "FixedPoint"
                                                                                                },
                                                                                                "id": 8950,
                                                                                                "name": "Identifier",
                                                                                                "src": "31837:10:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8951,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "31837:18:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8877,
                                                                                            "type": "uint256",
                                                                                            "value": "issuingFee"
                                                                                        },
                                                                                        "id": 8952,
                                                                                        "name": "Identifier",
                                                                                        "src": "31856:10:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8906,
                                                                                            "type": "uint256",
                                                                                            "value": "prorataLiquidityProvided"
                                                                                        },
                                                                                        "id": 8953,
                                                                                        "name": "Identifier",
                                                                                        "src": "31868:24:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8954,
                                                                                "name": "FunctionCall",
                                                                                "src": "31837:56:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                    "typeString": "contract IERC20"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9248,
                                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                                            "value": "_computeScalingFactor"
                                                                                        },
                                                                                        "id": 8955,
                                                                                        "name": "Identifier",
                                                                                        "src": "31895:21:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2938,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 8956,
                                                                                                "name": "Identifier",
                                                                                                "src": "31917:6:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8839,
                                                                                                    "type": "address",
                                                                                                    "value": "currency"
                                                                                                },
                                                                                                "id": 8957,
                                                                                                "name": "Identifier",
                                                                                                "src": "31924:8:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8958,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "31917:16:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8959,
                                                                                "name": "FunctionCall",
                                                                                "src": "31895:39:18"
                                                                            }
                                                                        ],
                                                                        "id": 8960,
                                                                        "name": "FunctionCall",
                                                                        "src": "31818:117:18"
                                                                    }
                                                                ],
                                                                "id": 8961,
                                                                "name": "Assignment",
                                                                "src": "31800:135:18"
                                                            }
                                                        ],
                                                        "id": 8962,
                                                        "name": "ExpressionStatement",
                                                        "src": "31800:135:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "distribute",
                                                                            "referencedDeclaration": 11220,
                                                                            "type": "function (uint256,address,address) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract ILiquidity",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 11308,
                                                                                            "type": "type(contract ILiquidity)",
                                                                                            "value": "ILiquidity"
                                                                                        },
                                                                                        "id": 8963,
                                                                                        "name": "Identifier",
                                                                                        "src": "31950:10:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 6412,
                                                                                            "type": "address",
                                                                                            "value": "LiquidityContract"
                                                                                        },
                                                                                        "id": 8964,
                                                                                        "name": "Identifier",
                                                                                        "src": "31961:17:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8965,
                                                                                "name": "FunctionCall",
                                                                                "src": "31950:29:18"
                                                                            }
                                                                        ],
                                                                        "id": 8966,
                                                                        "name": "MemberAccess",
                                                                        "src": "31950:40:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8910,
                                                                            "type": "uint256",
                                                                            "value": "underwritingFee"
                                                                        },
                                                                        "id": 8967,
                                                                        "name": "Identifier",
                                                                        "src": "31991:15:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "tokenOffered",
                                                                            "referencedDeclaration": 11688,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.lp storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6553,
                                                                                                    "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                                                    "value": "liquidityProviders"
                                                                                                },
                                                                                                "id": 8968,
                                                                                                "name": "Identifier",
                                                                                                "src": "32062:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6592,
                                                                                                            "type": "mapping(bytes32 => address)",
                                                                                                            "value": "poolSecurity"
                                                                                                        },
                                                                                                        "id": 8969,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32081:12:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8835,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 8970,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32094:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8971,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "32081:20:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8972,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "32062:40:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8914,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8973,
                                                                                        "name": "Identifier",
                                                                                        "src": "32103:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8974,
                                                                                "name": "IndexAccess",
                                                                                "src": "32062:43:18"
                                                                            }
                                                                        ],
                                                                        "id": 8975,
                                                                        "name": "MemberAccess",
                                                                        "src": "32062:56:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "owner",
                                                                            "referencedDeclaration": 11686,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.lp storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6553,
                                                                                                    "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                                                    "value": "liquidityProviders"
                                                                                                },
                                                                                                "id": 8976,
                                                                                                "name": "Identifier",
                                                                                                "src": "32173:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6592,
                                                                                                            "type": "mapping(bytes32 => address)",
                                                                                                            "value": "poolSecurity"
                                                                                                        },
                                                                                                        "id": 8977,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32192:12:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8835,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 8978,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32205:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8979,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "32192:20:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8980,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "32173:40:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8914,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8981,
                                                                                        "name": "Identifier",
                                                                                        "src": "32214:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8982,
                                                                                "name": "IndexAccess",
                                                                                "src": "32173:43:18"
                                                                            }
                                                                        ],
                                                                        "id": 8983,
                                                                        "name": "MemberAccess",
                                                                        "src": "32173:49:18"
                                                                    }
                                                                ],
                                                                "id": 8984,
                                                                "name": "FunctionCall",
                                                                "src": "31950:273:18"
                                                            }
                                                        ],
                                                        "id": 8985,
                                                        "name": "ExpressionStatement",
                                                        "src": "31950:273:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "transfer",
                                                                            "referencedDeclaration": 2887,
                                                                            "type": "function (address,uint256) external returns (bool)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2938,
                                                                                            "type": "type(contract IERC20)",
                                                                                            "value": "IERC20"
                                                                                        },
                                                                                        "id": 8986,
                                                                                        "name": "Identifier",
                                                                                        "src": "32238:6:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8839,
                                                                                            "type": "address",
                                                                                            "value": "currency"
                                                                                        },
                                                                                        "id": 8987,
                                                                                        "name": "Identifier",
                                                                                        "src": "32245:8:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8988,
                                                                                "name": "FunctionCall",
                                                                                "src": "32238:16:18"
                                                                            }
                                                                        ],
                                                                        "id": 8989,
                                                                        "name": "MemberAccess",
                                                                        "src": "32238:25:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "owner",
                                                                            "referencedDeclaration": 11686,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.lp storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6553,
                                                                                                    "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                                                    "value": "liquidityProviders"
                                                                                                },
                                                                                                "id": 8990,
                                                                                                "name": "Identifier",
                                                                                                "src": "32264:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6592,
                                                                                                            "type": "mapping(bytes32 => address)",
                                                                                                            "value": "poolSecurity"
                                                                                                        },
                                                                                                        "id": 8991,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32283:12:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8835,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 8992,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32296:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 8993,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "32283:20:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 8994,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "32264:40:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8914,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 8995,
                                                                                        "name": "Identifier",
                                                                                        "src": "32305:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8996,
                                                                                "name": "IndexAccess",
                                                                                "src": "32264:43:18"
                                                                            }
                                                                        ],
                                                                        "id": 8997,
                                                                        "name": "MemberAccess",
                                                                        "src": "32264:49:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "mulDown",
                                                                                    "referencedDeclaration": 537,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 780,
                                                                                            "type": "type(library FixedPoint)",
                                                                                            "value": "FixedPoint"
                                                                                        },
                                                                                        "id": 8998,
                                                                                        "name": "Identifier",
                                                                                        "src": "32315:10:18"
                                                                                    }
                                                                                ],
                                                                                "id": 8999,
                                                                                "name": "MemberAccess",
                                                                                "src": "32315:18:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8910,
                                                                                    "type": "uint256",
                                                                                    "value": "underwritingFee"
                                                                                },
                                                                                "id": 9000,
                                                                                "name": "Identifier",
                                                                                "src": "32334:15:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6610,
                                                                                    "type": "uint256",
                                                                                    "value": "revshare"
                                                                                },
                                                                                "id": 9001,
                                                                                "name": "Identifier",
                                                                                "src": "32351:8:18"
                                                                            }
                                                                        ],
                                                                        "id": 9002,
                                                                        "name": "FunctionCall",
                                                                        "src": "32315:45:18"
                                                                    }
                                                                ],
                                                                "id": 9003,
                                                                "name": "FunctionCall",
                                                                "src": "32238:123:18"
                                                            }
                                                        ],
                                                        "id": 9004,
                                                        "name": "ExpressionStatement",
                                                        "src": "32238:123:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "member_name": "earned",
                                                                            "referencedDeclaration": 11694,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.lp storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6553,
                                                                                                    "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                                                    "value": "liquidityProviders"
                                                                                                },
                                                                                                "id": 9005,
                                                                                                "name": "Identifier",
                                                                                                "src": "32376:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6592,
                                                                                                            "type": "mapping(bytes32 => address)",
                                                                                                            "value": "poolSecurity"
                                                                                                        },
                                                                                                        "id": 9006,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32395:12:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8835,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 9007,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32408:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 9008,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "32395:20:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9010,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "32376:40:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8914,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 9009,
                                                                                        "name": "Identifier",
                                                                                        "src": "32417:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9011,
                                                                                "name": "IndexAccess",
                                                                                "src": "32376:43:18"
                                                                            }
                                                                        ],
                                                                        "id": 9012,
                                                                        "name": "MemberAccess",
                                                                        "src": "32376:50:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "add",
                                                                                    "referencedDeclaration": 2109,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2367,
                                                                                            "type": "type(library Math)",
                                                                                            "value": "Math"
                                                                                        },
                                                                                        "id": 9013,
                                                                                        "name": "Identifier",
                                                                                        "src": "32429:4:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9014,
                                                                                "name": "MemberAccess",
                                                                                "src": "32429:8:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "earned",
                                                                                    "referencedDeclaration": 11694,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.lp storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6553,
                                                                                                            "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                                                            "value": "liquidityProviders"
                                                                                                        },
                                                                                                        "id": 9015,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32438:18:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 6592,
                                                                                                                    "type": "mapping(bytes32 => address)",
                                                                                                                    "value": "poolSecurity"
                                                                                                                },
                                                                                                                "id": 9016,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "32457:12:18"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 8835,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "poolId"
                                                                                                                },
                                                                                                                "id": 9017,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "32470:6:18"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 9018,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "32457:20:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 9019,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "32438:40:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8914,
                                                                                                    "type": "uint256",
                                                                                                    "value": "i"
                                                                                                },
                                                                                                "id": 9020,
                                                                                                "name": "Identifier",
                                                                                                "src": "32479:1:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9021,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "32438:43:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9022,
                                                                                "name": "MemberAccess",
                                                                                "src": "32438:50:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8910,
                                                                                    "type": "uint256",
                                                                                    "value": "underwritingFee"
                                                                                },
                                                                                "id": 9023,
                                                                                "name": "Identifier",
                                                                                "src": "32490:15:18"
                                                                            }
                                                                        ],
                                                                        "id": 9024,
                                                                        "name": "FunctionCall",
                                                                        "src": "32429:77:18"
                                                                    }
                                                                ],
                                                                "id": 9025,
                                                                "name": "Assignment",
                                                                "src": "32376:130:18"
                                                            }
                                                        ],
                                                        "id": 9026,
                                                        "name": "ExpressionStatement",
                                                        "src": "32376:130:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8906,
                                                                            "type": "uint256",
                                                                            "value": "prorataLiquidityProvided"
                                                                        },
                                                                        "id": 9027,
                                                                        "name": "Identifier",
                                                                        "src": "32521:24:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "divDown",
                                                                                    "referencedDeclaration": 631,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 780,
                                                                                            "type": "type(library FixedPoint)",
                                                                                            "value": "FixedPoint"
                                                                                        },
                                                                                        "id": 9028,
                                                                                        "name": "Identifier",
                                                                                        "src": "32548:10:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9029,
                                                                                "name": "MemberAccess",
                                                                                "src": "32548:18:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "mulDown",
                                                                                            "referencedDeclaration": 537,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 780,
                                                                                                    "type": "type(library FixedPoint)",
                                                                                                    "value": "FixedPoint"
                                                                                                },
                                                                                                "id": 9030,
                                                                                                "name": "Identifier",
                                                                                                "src": "32567:10:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9031,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "32567:18:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8906,
                                                                                            "type": "uint256",
                                                                                            "value": "prorataLiquidityProvided"
                                                                                        },
                                                                                        "id": 9032,
                                                                                        "name": "Identifier",
                                                                                        "src": "32586:24:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sub",
                                                                                                    "referencedDeclaration": 2177,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2367,
                                                                                                            "type": "type(library Math)",
                                                                                                            "value": "Math"
                                                                                                        },
                                                                                                        "id": 9033,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32612:4:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 9034,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "32612:8:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8862,
                                                                                                    "type": "uint256",
                                                                                                    "value": "subscription"
                                                                                                },
                                                                                                "id": 9035,
                                                                                                "name": "Identifier",
                                                                                                "src": "32621:12:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8877,
                                                                                                    "type": "uint256",
                                                                                                    "value": "issuingFee"
                                                                                                },
                                                                                                "id": 9036,
                                                                                                "name": "Identifier",
                                                                                                "src": "32635:10:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9037,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "32612:34:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9038,
                                                                                "name": "FunctionCall",
                                                                                "src": "32567:80:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                    "typeString": "contract IERC20"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9248,
                                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                                            "value": "_computeScalingFactor"
                                                                                        },
                                                                                        "id": 9039,
                                                                                        "name": "Identifier",
                                                                                        "src": "32649:21:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2938,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 9040,
                                                                                                "name": "Identifier",
                                                                                                "src": "32671:6:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 8839,
                                                                                                    "type": "address",
                                                                                                    "value": "currency"
                                                                                                },
                                                                                                "id": 9041,
                                                                                                "name": "Identifier",
                                                                                                "src": "32678:8:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9042,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "32671:16:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9043,
                                                                                "name": "FunctionCall",
                                                                                "src": "32649:39:18"
                                                                            }
                                                                        ],
                                                                        "id": 9044,
                                                                        "name": "FunctionCall",
                                                                        "src": "32548:141:18"
                                                                    }
                                                                ],
                                                                "id": 9045,
                                                                "name": "Assignment",
                                                                "src": "32521:168:18"
                                                            }
                                                        ],
                                                        "id": 9046,
                                                        "name": "ExpressionStatement",
                                                        "src": "32521:168:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "add",
                                                                            "referencedDeclaration": 3076,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 3123,
                                                                                    "type": "type(library SafeMath)",
                                                                                    "value": "SafeMath"
                                                                                },
                                                                                "id": 9047,
                                                                                "name": "Identifier",
                                                                                "src": "32704:8:18"
                                                                            }
                                                                        ],
                                                                        "id": 9049,
                                                                        "name": "MemberAccess",
                                                                        "src": "32704:12:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "subscribed",
                                                                            "referencedDeclaration": 11692,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.lp storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6553,
                                                                                                    "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                                                    "value": "liquidityProviders"
                                                                                                },
                                                                                                "id": 9050,
                                                                                                "name": "Identifier",
                                                                                                "src": "32717:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6592,
                                                                                                            "type": "mapping(bytes32 => address)",
                                                                                                            "value": "poolSecurity"
                                                                                                        },
                                                                                                        "id": 9051,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32736:12:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8835,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 9052,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32749:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 9053,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "32736:20:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9054,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "32717:40:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8914,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 9055,
                                                                                        "name": "Identifier",
                                                                                        "src": "32758:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9056,
                                                                                "name": "IndexAccess",
                                                                                "src": "32717:43:18"
                                                                            }
                                                                        ],
                                                                        "id": 9057,
                                                                        "name": "MemberAccess",
                                                                        "src": "32717:54:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8906,
                                                                            "type": "uint256",
                                                                            "value": "prorataLiquidityProvided"
                                                                        },
                                                                        "id": 9058,
                                                                        "name": "Identifier",
                                                                        "src": "32773:24:18"
                                                                    }
                                                                ],
                                                                "id": 9059,
                                                                "name": "FunctionCall",
                                                                "src": "32704:94:18"
                                                            }
                                                        ],
                                                        "id": 9060,
                                                        "name": "ExpressionStatement",
                                                        "src": "32704:94:18"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6720,
                                                                            "type": "function (bytes32,address,address,address,uint256,address,uint256)",
                                                                            "value": "settlements"
                                                                        },
                                                                        "id": 9061,
                                                                        "name": "Identifier",
                                                                        "src": "32818:11:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8835,
                                                                            "type": "bytes32",
                                                                            "value": "poolId"
                                                                        },
                                                                        "id": 9062,
                                                                        "name": "Identifier",
                                                                        "src": "32830:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6592,
                                                                                    "type": "mapping(bytes32 => address)",
                                                                                    "value": "poolSecurity"
                                                                                },
                                                                                "id": 9063,
                                                                                "name": "Identifier",
                                                                                "src": "32838:12:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8835,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolId"
                                                                                },
                                                                                "id": 9064,
                                                                                "name": "Identifier",
                                                                                "src": "32851:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 9065,
                                                                        "name": "IndexAccess",
                                                                        "src": "32838:20:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8839,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 9066,
                                                                        "name": "Identifier",
                                                                        "src": "32860:8:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "owner",
                                                                            "referencedDeclaration": 11686,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct IMarketMaker.lp storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct IMarketMaker.lp storage ref[] storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 6553,
                                                                                                    "type": "mapping(address => struct IMarketMaker.lp storage ref[] storage ref)",
                                                                                                    "value": "liquidityProviders"
                                                                                                },
                                                                                                "id": 9067,
                                                                                                "name": "Identifier",
                                                                                                "src": "32870:18:18"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 6592,
                                                                                                            "type": "mapping(bytes32 => address)",
                                                                                                            "value": "poolSecurity"
                                                                                                        },
                                                                                                        "id": 9068,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32889:12:18"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 8835,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "poolId"
                                                                                                        },
                                                                                                        "id": 9069,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "32902:6:18"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 9070,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "32889:20:18"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9071,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "32870:40:18"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 8914,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 9072,
                                                                                        "name": "Identifier",
                                                                                        "src": "32911:1:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9073,
                                                                                "name": "IndexAccess",
                                                                                "src": "32870:43:18"
                                                                            }
                                                                        ],
                                                                        "id": 9074,
                                                                        "name": "MemberAccess",
                                                                        "src": "32870:49:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8910,
                                                                            "type": "uint256",
                                                                            "value": "underwritingFee"
                                                                        },
                                                                        "id": 9075,
                                                                        "name": "Identifier",
                                                                        "src": "32921:15:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8849,
                                                                            "type": "address",
                                                                            "value": "issuer"
                                                                        },
                                                                        "id": 9076,
                                                                        "name": "Identifier",
                                                                        "src": "32938:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8906,
                                                                            "type": "uint256",
                                                                            "value": "prorataLiquidityProvided"
                                                                        },
                                                                        "id": 9077,
                                                                        "name": "Identifier",
                                                                        "src": "32946:24:18"
                                                                    }
                                                                ],
                                                                "id": 9078,
                                                                "name": "FunctionCall",
                                                                "src": "32818:153:18"
                                                            }
                                                        ],
                                                        "id": 9079,
                                                        "name": "EmitStatement",
                                                        "src": "32813:158:18"
                                                    }
                                                ],
                                                "id": 9080,
                                                "name": "Block",
                                                "src": "31626:1357:18"
                                            }
                                        ],
                                        "id": 9081,
                                        "name": "ForStatement",
                                        "src": "31557:1426:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8877,
                                                            "type": "uint256",
                                                            "value": "issuingFee"
                                                        },
                                                        "id": 9082,
                                                        "name": "Identifier",
                                                        "src": "32993:10:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "divDown",
                                                                    "referencedDeclaration": 631,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 780,
                                                                            "type": "type(library FixedPoint)",
                                                                            "value": "FixedPoint"
                                                                        },
                                                                        "id": 9083,
                                                                        "name": "Identifier",
                                                                        "src": "33006:10:18"
                                                                    }
                                                                ],
                                                                "id": 9084,
                                                                "name": "MemberAccess",
                                                                "src": "33006:18:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8877,
                                                                    "type": "uint256",
                                                                    "value": "issuingFee"
                                                                },
                                                                "id": 9085,
                                                                "name": "Identifier",
                                                                "src": "33025:10:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                    "typeString": "contract IERC20"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9248,
                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                            "value": "_computeScalingFactor"
                                                                        },
                                                                        "id": 9086,
                                                                        "name": "Identifier",
                                                                        "src": "33037:21:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2938,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 9087,
                                                                                "name": "Identifier",
                                                                                "src": "33059:6:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8839,
                                                                                    "type": "address",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 9088,
                                                                                "name": "Identifier",
                                                                                "src": "33066:8:18"
                                                                            }
                                                                        ],
                                                                        "id": 9089,
                                                                        "name": "FunctionCall",
                                                                        "src": "33059:16:18"
                                                                    }
                                                                ],
                                                                "id": 9090,
                                                                "name": "FunctionCall",
                                                                "src": "33037:39:18"
                                                            }
                                                        ],
                                                        "id": 9091,
                                                        "name": "FunctionCall",
                                                        "src": "33006:71:18"
                                                    }
                                                ],
                                                "id": 9092,
                                                "name": "Assignment",
                                                "src": "32993:84:18"
                                            }
                                        ],
                                        "id": 9093,
                                        "name": "ExpressionStatement",
                                        "src": "32993:84:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6602,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "fees"
                                                                },
                                                                "id": 9094,
                                                                "name": "Identifier",
                                                                "src": "33088:4:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8839,
                                                                    "type": "address",
                                                                    "value": "currency"
                                                                },
                                                                "id": 9095,
                                                                "name": "Identifier",
                                                                "src": "33093:8:18"
                                                            }
                                                        ],
                                                        "id": 9096,
                                                        "name": "IndexAccess",
                                                        "src": "33088:14:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "add",
                                                                    "referencedDeclaration": 2109,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2367,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 9097,
                                                                        "name": "Identifier",
                                                                        "src": "33105:4:18"
                                                                    }
                                                                ],
                                                                "id": 9098,
                                                                "name": "MemberAccess",
                                                                "src": "33105:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6602,
                                                                            "type": "mapping(address => uint256)",
                                                                            "value": "fees"
                                                                        },
                                                                        "id": 9099,
                                                                        "name": "Identifier",
                                                                        "src": "33114:4:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8839,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 9100,
                                                                        "name": "Identifier",
                                                                        "src": "33119:8:18"
                                                                    }
                                                                ],
                                                                "id": 9101,
                                                                "name": "IndexAccess",
                                                                "src": "33114:14:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sub",
                                                                            "referencedDeclaration": 503,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 780,
                                                                                    "type": "type(library FixedPoint)",
                                                                                    "value": "FixedPoint"
                                                                                },
                                                                                "id": 9102,
                                                                                "name": "Identifier",
                                                                                "src": "33130:10:18"
                                                                            }
                                                                        ],
                                                                        "id": 9103,
                                                                        "name": "MemberAccess",
                                                                        "src": "33130:14:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8877,
                                                                            "type": "uint256",
                                                                            "value": "issuingFee"
                                                                        },
                                                                        "id": 9104,
                                                                        "name": "Identifier",
                                                                        "src": "33145:10:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "mulDown",
                                                                                    "referencedDeclaration": 537,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 780,
                                                                                            "type": "type(library FixedPoint)",
                                                                                            "value": "FixedPoint"
                                                                                        },
                                                                                        "id": 9105,
                                                                                        "name": "Identifier",
                                                                                        "src": "33157:10:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9106,
                                                                                "name": "MemberAccess",
                                                                                "src": "33157:18:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8877,
                                                                                    "type": "uint256",
                                                                                    "value": "issuingFee"
                                                                                },
                                                                                "id": 9107,
                                                                                "name": "Identifier",
                                                                                "src": "33176:10:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6610,
                                                                                    "type": "uint256",
                                                                                    "value": "revshare"
                                                                                },
                                                                                "id": 9108,
                                                                                "name": "Identifier",
                                                                                "src": "33188:8:18"
                                                                            }
                                                                        ],
                                                                        "id": 9109,
                                                                        "name": "FunctionCall",
                                                                        "src": "33157:40:18"
                                                                    }
                                                                ],
                                                                "id": 9110,
                                                                "name": "FunctionCall",
                                                                "src": "33130:68:18"
                                                            }
                                                        ],
                                                        "id": 9111,
                                                        "name": "FunctionCall",
                                                        "src": "33105:94:18"
                                                    }
                                                ],
                                                "id": 9112,
                                                "name": "Assignment",
                                                "src": "33088:111:18"
                                            }
                                        ],
                                        "id": 9113,
                                        "name": "ExpressionStatement",
                                        "src": "33088:111:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transfer",
                                                            "referencedDeclaration": 2887,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 9114,
                                                                        "name": "Identifier",
                                                                        "src": "33210:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8839,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 9115,
                                                                        "name": "Identifier",
                                                                        "src": "33217:8:18"
                                                                    }
                                                                ],
                                                                "id": 9116,
                                                                "name": "FunctionCall",
                                                                "src": "33210:16:18"
                                                            }
                                                        ],
                                                        "id": 9117,
                                                        "name": "MemberAccess",
                                                        "src": "33210:25:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 8849,
                                                            "type": "address",
                                                            "value": "issuer"
                                                        },
                                                        "id": 9118,
                                                        "name": "Identifier",
                                                        "src": "33236:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 2177,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2367,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 9119,
                                                                        "name": "Identifier",
                                                                        "src": "33244:4:18"
                                                                    }
                                                                ],
                                                                "id": 9120,
                                                                "name": "MemberAccess",
                                                                "src": "33244:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "mapping(address => uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 6584,
                                                                                    "type": "mapping(bytes32 => mapping(address => uint256))",
                                                                                    "value": "subscribed"
                                                                                },
                                                                                "id": 9121,
                                                                                "name": "Identifier",
                                                                                "src": "33253:10:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 8835,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolId"
                                                                                },
                                                                                "id": 9122,
                                                                                "name": "Identifier",
                                                                                "src": "33264:6:18"
                                                                            }
                                                                        ],
                                                                        "id": 9123,
                                                                        "name": "IndexAccess",
                                                                        "src": "33253:18:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 8839,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 9124,
                                                                        "name": "Identifier",
                                                                        "src": "33272:8:18"
                                                                    }
                                                                ],
                                                                "id": 9125,
                                                                "name": "IndexAccess",
                                                                "src": "33253:28:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8877,
                                                                    "type": "uint256",
                                                                    "value": "issuingFee"
                                                                },
                                                                "id": 9126,
                                                                "name": "Identifier",
                                                                "src": "33283:10:18"
                                                            }
                                                        ],
                                                        "id": 9127,
                                                        "name": "FunctionCall",
                                                        "src": "33244:50:18"
                                                    }
                                                ],
                                                "id": 9128,
                                                "name": "FunctionCall",
                                                "src": "33210:85:18"
                                            }
                                        ],
                                        "id": 9129,
                                        "name": "ExpressionStatement",
                                        "src": "33210:85:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "delete",
                                                    "prefix": true,
                                                    "type": "tuple()"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "struct IMarketMaker.subscriptions storage ref[] storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6572,
                                                                    "type": "mapping(bytes32 => struct IMarketMaker.subscriptions storage ref[] storage ref)",
                                                                    "value": "investors"
                                                                },
                                                                "id": 9130,
                                                                "name": "Identifier",
                                                                "src": "33313:9:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 8835,
                                                                    "type": "bytes32",
                                                                    "value": "poolId"
                                                                },
                                                                "id": 9131,
                                                                "name": "Identifier",
                                                                "src": "33323:6:18"
                                                            }
                                                        ],
                                                        "id": 9132,
                                                        "name": "IndexAccess",
                                                        "src": "33313:17:18"
                                                    }
                                                ],
                                                "id": 9133,
                                                "name": "UnaryOperation",
                                                "src": "33306:24:18"
                                            }
                                        ],
                                        "id": 9134,
                                        "name": "ExpressionStatement",
                                        "src": "33306:24:18"
                                    }
                                ],
                                "id": 9135,
                                "name": "Block",
                                "src": "30921:2434:18"
                            }
                        ],
                        "id": 9136,
                        "name": "FunctionDefinition",
                        "src": "30879:2476:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11880
                            ],
                            "functionSelector": "5bccd177",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getIssuingFeeCollected",
                            "scope": 9283,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 9140,
                                "name": "OverrideSpecifier",
                                "src": "33414:8:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_token",
                                            "scope": 9191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9137,
                                                "name": "ElementaryTypeName",
                                                "src": "33398:7:18"
                                            }
                                        ],
                                        "id": 9138,
                                        "name": "VariableDeclaration",
                                        "src": "33398:14:18"
                                    }
                                ],
                                "id": 9139,
                                "name": "ParameterList",
                                "src": "33397:16:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 9191,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9141,
                                                "name": "ElementaryTypeName",
                                                "src": "33440:7:18"
                                            }
                                        ],
                                        "id": 9142,
                                        "name": "VariableDeclaration",
                                        "src": "33440:7:18"
                                    }
                                ],
                                "id": 9143,
                                "name": "ParameterList",
                                "src": "33439:9:18"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_520c74523a45f0fb030503010667d8fc574cfd834ba56c4e6f6de8f27996ed35",
                                                                    "typeString": "literal_string \"Unauthorized fee collection\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 9144,
                                                        "name": "Identifier",
                                                        "src": "33459:7:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -15,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 9145,
                                                                        "name": "Identifier",
                                                                        "src": "33467:3:18"
                                                                    }
                                                                ],
                                                                "id": 9146,
                                                                "name": "MemberAccess",
                                                                "src": "33467:10:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6414,
                                                                    "type": "address",
                                                                    "value": "distribution"
                                                                },
                                                                "id": 9147,
                                                                "name": "Identifier",
                                                                "src": "33479:12:18"
                                                            }
                                                        ],
                                                        "id": 9148,
                                                        "name": "BinaryOperation",
                                                        "src": "33467:24:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "556e617574686f72697a65642066656520636f6c6c656374696f6e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Unauthorized fee collection\"",
                                                            "value": "Unauthorized fee collection"
                                                        },
                                                        "id": 9149,
                                                        "name": "Literal",
                                                        "src": "33493:29:18"
                                                    }
                                                ],
                                                "id": 9150,
                                                "name": "FunctionCall",
                                                "src": "33459:64:18"
                                            }
                                        ],
                                        "id": 9151,
                                        "name": "ExpressionStatement",
                                        "src": "33459:64:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9153
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "feeCollected",
                                                    "scope": 9190,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 9152,
                                                        "name": "ElementaryTypeName",
                                                        "src": "33534:7:18"
                                                    }
                                                ],
                                                "id": 9153,
                                                "name": "VariableDeclaration",
                                                "src": "33534:20:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6602,
                                                            "type": "mapping(address => uint256)",
                                                            "value": "fees"
                                                        },
                                                        "id": 9154,
                                                        "name": "Identifier",
                                                        "src": "33557:4:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9138,
                                                            "type": "address",
                                                            "value": "_token"
                                                        },
                                                        "id": 9155,
                                                        "name": "Identifier",
                                                        "src": "33562:6:18"
                                                    }
                                                ],
                                                "id": 9156,
                                                "name": "IndexAccess",
                                                "src": "33557:12:18"
                                            }
                                        ],
                                        "id": 9157,
                                        "name": "VariableDeclarationStatement",
                                        "src": "33534:35:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 6602,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "fees"
                                                                },
                                                                "id": 9158,
                                                                "name": "Identifier",
                                                                "src": "33588:4:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9138,
                                                                    "type": "address",
                                                                    "value": "_token"
                                                                },
                                                                "id": 9159,
                                                                "name": "Identifier",
                                                                "src": "33593:6:18"
                                                            }
                                                        ],
                                                        "id": 9160,
                                                        "name": "IndexAccess",
                                                        "src": "33588:12:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 2177,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2367,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 9161,
                                                                        "name": "Identifier",
                                                                        "src": "33603:4:18"
                                                                    }
                                                                ],
                                                                "id": 9162,
                                                                "name": "MemberAccess",
                                                                "src": "33603:8:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 6602,
                                                                            "type": "mapping(address => uint256)",
                                                                            "value": "fees"
                                                                        },
                                                                        "id": 9163,
                                                                        "name": "Identifier",
                                                                        "src": "33612:4:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9138,
                                                                            "type": "address",
                                                                            "value": "_token"
                                                                        },
                                                                        "id": 9164,
                                                                        "name": "Identifier",
                                                                        "src": "33617:6:18"
                                                                    }
                                                                ],
                                                                "id": 9165,
                                                                "name": "IndexAccess",
                                                                "src": "33612:12:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9153,
                                                                    "type": "uint256",
                                                                    "value": "feeCollected"
                                                                },
                                                                "id": 9166,
                                                                "name": "Identifier",
                                                                "src": "33626:12:18"
                                                            }
                                                        ],
                                                        "id": 9167,
                                                        "name": "FunctionCall",
                                                        "src": "33603:36:18"
                                                    }
                                                ],
                                                "id": 9168,
                                                "name": "Assignment",
                                                "src": "33588:51:18"
                                            }
                                        ],
                                        "id": 9169,
                                        "name": "ExpressionStatement",
                                        "src": "33588:51:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transfer",
                                                            "referencedDeclaration": 2887,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 9170,
                                                                        "name": "Identifier",
                                                                        "src": "33650:6:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9138,
                                                                            "type": "address",
                                                                            "value": "_token"
                                                                        },
                                                                        "id": 9171,
                                                                        "name": "Identifier",
                                                                        "src": "33657:6:18"
                                                                    }
                                                                ],
                                                                "id": 9172,
                                                                "name": "FunctionCall",
                                                                "src": "33650:14:18"
                                                            }
                                                        ],
                                                        "id": 9173,
                                                        "name": "MemberAccess",
                                                        "src": "33650:23:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6414,
                                                            "type": "address",
                                                            "value": "distribution"
                                                        },
                                                        "id": 9174,
                                                        "name": "Identifier",
                                                        "src": "33674:12:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9153,
                                                            "type": "uint256",
                                                            "value": "feeCollected"
                                                        },
                                                        "id": 9175,
                                                        "name": "Identifier",
                                                        "src": "33688:12:18"
                                                    }
                                                ],
                                                "id": 9176,
                                                "name": "FunctionCall",
                                                "src": "33650:51:18"
                                            }
                                        ],
                                        "id": 9177,
                                        "name": "ExpressionStatement",
                                        "src": "33650:51:18"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 6728,
                                                            "type": "function (address,uint256,uint256)",
                                                            "value": "feecollection"
                                                        },
                                                        "id": 9178,
                                                        "name": "Identifier",
                                                        "src": "33717:13:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_PrimaryIssueManager_$9283",
                                                                            "typeString": "contract PrimaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 9179,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "33731:7:18"
                                                                    }
                                                                ],
                                                                "id": 9180,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "33731:7:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract PrimaryIssueManager",
                                                                    "value": "this"
                                                                },
                                                                "id": 9181,
                                                                "name": "Identifier",
                                                                "src": "33739:4:18"
                                                            }
                                                        ],
                                                        "id": 9182,
                                                        "name": "FunctionCall",
                                                        "src": "33731:13:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9153,
                                                            "type": "uint256",
                                                            "value": "feeCollected"
                                                        },
                                                        "id": 9183,
                                                        "name": "Identifier",
                                                        "src": "33746:12:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timestamp",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -4,
                                                                    "type": "block",
                                                                    "value": "block"
                                                                },
                                                                "id": 9184,
                                                                "name": "Identifier",
                                                                "src": "33760:5:18"
                                                            }
                                                        ],
                                                        "id": 9185,
                                                        "name": "MemberAccess",
                                                        "src": "33760:15:18"
                                                    }
                                                ],
                                                "id": 9186,
                                                "name": "FunctionCall",
                                                "src": "33717:59:18"
                                            }
                                        ],
                                        "id": 9187,
                                        "name": "EmitStatement",
                                        "src": "33712:64:18"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 9143
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 9153,
                                                    "type": "uint256",
                                                    "value": "feeCollected"
                                                },
                                                "id": 9188,
                                                "name": "Identifier",
                                                "src": "33794:12:18"
                                            }
                                        ],
                                        "id": 9189,
                                        "name": "Return",
                                        "src": "33787:19:18"
                                    }
                                ],
                                "id": 9190,
                                "name": "Block",
                                "src": "33448:366:18"
                            }
                        ],
                        "id": 9191,
                        "name": "FunctionDefinition",
                        "src": "33366:448:18"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                11873
                            ],
                            "functionSelector": "893d20e8",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getOwner",
                            "scope": 9283,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 9193,
                                "name": "OverrideSpecifier",
                                "src": "33842:8:18"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 9192,
                                "name": "ParameterList",
                                "src": "33839:2:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 9201,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9194,
                                                "name": "ElementaryTypeName",
                                                "src": "33873:7:18"
                                            }
                                        ],
                                        "id": 9195,
                                        "name": "VariableDeclaration",
                                        "src": "33873:7:18"
                                    }
                                ],
                                "id": 9196,
                                "name": "ParameterList",
                                "src": "33872:9:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 9196
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 2978,
                                                            "type": "function () view returns (address)",
                                                            "value": "owner"
                                                        },
                                                        "id": 9197,
                                                        "name": "Identifier",
                                                        "src": "33899:5:18"
                                                    }
                                                ],
                                                "id": 9198,
                                                "name": "FunctionCall",
                                                "src": "33899:7:18"
                                            }
                                        ],
                                        "id": 9199,
                                        "name": "Return",
                                        "src": "33892:14:18"
                                    }
                                ],
                                "id": 9200,
                                "name": "Block",
                                "src": "33881:33:18"
                            }
                        ],
                        "id": 9201,
                        "name": "FunctionDefinition",
                        "src": "33822:92:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_convertERC20sToAssets",
                            "scope": 9283,
                            "stateMutability": "pure",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": " @dev This helper function is a fast and cheap way to convert between IERC20[] and IAsset[] types"
                                },
                                "id": 9202,
                                "name": "StructuredDocumentation",
                                "src": "33922:117:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "tokens",
                                            "scope": 9213,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "contract IERC20[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "contract IERC20[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IERC20",
                                                            "referencedDeclaration": 2938,
                                                            "type": "contract IERC20"
                                                        },
                                                        "id": 9203,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "34077:6:18"
                                                    }
                                                ],
                                                "id": 9204,
                                                "name": "ArrayTypeName",
                                                "src": "34077:8:18"
                                            }
                                        ],
                                        "id": 9205,
                                        "name": "VariableDeclaration",
                                        "src": "34077:22:18"
                                    }
                                ],
                                "id": 9206,
                                "name": "ParameterList",
                                "src": "34076:24:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "assets",
                                            "scope": 9213,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "contract IAsset[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "contract IAsset[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IAsset",
                                                            "referencedDeclaration": 3127,
                                                            "type": "contract IAsset"
                                                        },
                                                        "id": 9207,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "34124:6:18"
                                                    }
                                                ],
                                                "id": 9208,
                                                "name": "ArrayTypeName",
                                                "src": "34124:8:18"
                                            }
                                        ],
                                        "id": 9209,
                                        "name": "VariableDeclaration",
                                        "src": "34124:22:18"
                                    }
                                ],
                                "id": 9210,
                                "name": "ParameterList",
                                "src": "34123:24:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "evmVersion": "istanbul",
                                            "externalReferences": [
                                                {
                                                    "declaration": 9209,
                                                    "isOffset": false,
                                                    "isSlot": false,
                                                    "src": "34240:6:18",
                                                    "valueSize": 1
                                                },
                                                {
                                                    "declaration": 9205,
                                                    "isOffset": false,
                                                    "isSlot": false,
                                                    "src": "34250:6:18",
                                                    "valueSize": 1
                                                }
                                            ],
                                            "operations": "{ assets := tokens }"
                                        },
                                        "children": [],
                                        "id": 9211,
                                        "name": "InlineAssembly",
                                        "src": "34216:51:18"
                                    }
                                ],
                                "id": 9212,
                                "name": "Block",
                                "src": "34148:126:18"
                            }
                        ],
                        "id": 9213,
                        "name": "FunctionDefinition",
                        "src": "34045:229:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_computeScalingFactor",
                            "scope": 9283,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": " @dev Returns a scaling factor that, when multiplied to a token amount for `token`, normalizes its balance as if\n it had 18 decimals."
                                },
                                "id": 9214,
                                "name": "StructuredDocumentation",
                                "src": "34282:160:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "token",
                                            "scope": 9248,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "contract IERC20",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "IERC20",
                                                    "referencedDeclaration": 2938,
                                                    "type": "contract IERC20"
                                                },
                                                "id": 9215,
                                                "name": "UserDefinedTypeName",
                                                "src": "34479:6:18"
                                            }
                                        ],
                                        "id": 9216,
                                        "name": "VariableDeclaration",
                                        "src": "34479:12:18"
                                    }
                                ],
                                "id": 9217,
                                "name": "ParameterList",
                                "src": "34478:14:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 9248,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9218,
                                                "name": "ElementaryTypeName",
                                                "src": "34516:7:18"
                                            }
                                        ],
                                        "id": 9219,
                                        "name": "VariableDeclaration",
                                        "src": "34516:7:18"
                                    }
                                ],
                                "id": 9220,
                                "name": "ParameterList",
                                "src": "34515:9:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9222
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "tokenDecimals",
                                                    "scope": 9247,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 9221,
                                                        "name": "ElementaryTypeName",
                                                        "src": "34617:7:18"
                                                    }
                                                ],
                                                "id": 9222,
                                                "name": "VariableDeclaration",
                                                "src": "34617:21:18"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint8",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "decimals",
                                                            "referencedDeclaration": 2459,
                                                            "type": "function () view external returns (uint8)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2860,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 9223,
                                                                        "name": "Identifier",
                                                                        "src": "34641:5:18"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                            "typeString": "contract IERC20"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "address"
                                                                                        },
                                                                                        "id": 9224,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "34647:7:18"
                                                                                    }
                                                                                ],
                                                                                "id": 9225,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "34647:7:18"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9216,
                                                                                    "type": "contract IERC20",
                                                                                    "value": "token"
                                                                                },
                                                                                "id": 9226,
                                                                                "name": "Identifier",
                                                                                "src": "34655:5:18"
                                                                            }
                                                                        ],
                                                                        "id": 9227,
                                                                        "name": "FunctionCall",
                                                                        "src": "34647:14:18"
                                                                    }
                                                                ],
                                                                "id": 9228,
                                                                "name": "FunctionCall",
                                                                "src": "34641:21:18"
                                                            }
                                                        ],
                                                        "id": 9229,
                                                        "name": "MemberAccess",
                                                        "src": "34641:30:18"
                                                    }
                                                ],
                                                "id": 9230,
                                                "name": "FunctionCall",
                                                "src": "34641:32:18"
                                            }
                                        ],
                                        "id": 9231,
                                        "name": "VariableDeclarationStatement",
                                        "src": "34617:56:18"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9233
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "decimalsDifference",
                                                    "scope": 9247,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 9232,
                                                        "name": "ElementaryTypeName",
                                                        "src": "34751:7:18"
                                                    }
                                                ],
                                                "id": 9233,
                                                "name": "VariableDeclaration",
                                                "src": "34751:26:18"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_rational_18_by_1",
                                                                    "typeString": "int_const 18"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sub",
                                                            "referencedDeclaration": 2177,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2367,
                                                                    "type": "type(library Math)",
                                                                    "value": "Math"
                                                                },
                                                                "id": 9234,
                                                                "name": "Identifier",
                                                                "src": "34780:4:18"
                                                            }
                                                        ],
                                                        "id": 9235,
                                                        "name": "MemberAccess",
                                                        "src": "34780:8:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "3138",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 18",
                                                            "value": "18"
                                                        },
                                                        "id": 9236,
                                                        "name": "Literal",
                                                        "src": "34789:2:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9222,
                                                            "type": "uint256",
                                                            "value": "tokenDecimals"
                                                        },
                                                        "id": 9237,
                                                        "name": "Identifier",
                                                        "src": "34793:13:18"
                                                    }
                                                ],
                                                "id": 9238,
                                                "name": "FunctionCall",
                                                "src": "34780:27:18"
                                            }
                                        ],
                                        "id": 9239,
                                        "name": "VariableDeclarationStatement",
                                        "src": "34751:56:18"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 9220
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "*",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "ONE",
                                                            "referencedDeclaration": 445,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 780,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 9240,
                                                                "name": "Identifier",
                                                                "src": "34825:10:18"
                                                            }
                                                        ],
                                                        "id": 9241,
                                                        "name": "MemberAccess",
                                                        "src": "34825:14:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "**",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "3130",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 10",
                                                                    "value": "10"
                                                                },
                                                                "id": 9242,
                                                                "name": "Literal",
                                                                "src": "34842:2:18"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9233,
                                                                    "type": "uint256",
                                                                    "value": "decimalsDifference"
                                                                },
                                                                "id": 9243,
                                                                "name": "Identifier",
                                                                "src": "34846:18:18"
                                                            }
                                                        ],
                                                        "id": 9244,
                                                        "name": "BinaryOperation",
                                                        "src": "34842:22:18"
                                                    }
                                                ],
                                                "id": 9245,
                                                "name": "BinaryOperation",
                                                "src": "34825:39:18"
                                            }
                                        ],
                                        "id": 9246,
                                        "name": "Return",
                                        "src": "34818:46:18"
                                    }
                                ],
                                "id": 9247,
                                "name": "Block",
                                "src": "34525:347:18"
                            }
                        ],
                        "id": 9248,
                        "name": "FunctionDefinition",
                        "src": "34448:424:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_downscaleDown",
                            "scope": 9283,
                            "stateMutability": "pure",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": " @dev Reverses the `scalingFactor` applied to `amount`, resulting in a smaller or equal value depending on\n whether it needed scaling or not. The result is rounded down."
                                },
                                "id": 9249,
                                "name": "StructuredDocumentation",
                                "src": "34880:196:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amount",
                                            "scope": 9265,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9250,
                                                "name": "ElementaryTypeName",
                                                "src": "35106:7:18"
                                            }
                                        ],
                                        "id": 9251,
                                        "name": "VariableDeclaration",
                                        "src": "35106:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "scalingFactor",
                                            "scope": 9265,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9252,
                                                "name": "ElementaryTypeName",
                                                "src": "35122:7:18"
                                            }
                                        ],
                                        "id": 9253,
                                        "name": "VariableDeclaration",
                                        "src": "35122:21:18"
                                    }
                                ],
                                "id": 9254,
                                "name": "ParameterList",
                                "src": "35105:39:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 9265,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9255,
                                                "name": "ElementaryTypeName",
                                                "src": "35168:7:18"
                                            }
                                        ],
                                        "id": 9256,
                                        "name": "VariableDeclaration",
                                        "src": "35168:7:18"
                                    }
                                ],
                                "id": 9257,
                                "name": "ParameterList",
                                "src": "35167:9:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 9257
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "divDown",
                                                            "referencedDeclaration": 631,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 780,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 9258,
                                                                "name": "Identifier",
                                                                "src": "35195:10:18"
                                                            }
                                                        ],
                                                        "id": 9259,
                                                        "name": "MemberAccess",
                                                        "src": "35195:18:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9251,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 9260,
                                                        "name": "Identifier",
                                                        "src": "35214:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9253,
                                                            "type": "uint256",
                                                            "value": "scalingFactor"
                                                        },
                                                        "id": 9261,
                                                        "name": "Identifier",
                                                        "src": "35222:13:18"
                                                    }
                                                ],
                                                "id": 9262,
                                                "name": "FunctionCall",
                                                "src": "35195:41:18"
                                            }
                                        ],
                                        "id": 9263,
                                        "name": "Return",
                                        "src": "35188:48:18"
                                    }
                                ],
                                "id": 9264,
                                "name": "Block",
                                "src": "35177:67:18"
                            }
                        ],
                        "id": 9265,
                        "name": "FunctionDefinition",
                        "src": "35082:162:18"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_upscale",
                            "scope": 9283,
                            "stateMutability": "pure",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": " @dev Applies `scalingFactor` to `amount`, resulting in a larger or equal value depending on whether it needed\n scaling or not."
                                },
                                "id": 9266,
                                "name": "StructuredDocumentation",
                                "src": "35252:154:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amount",
                                            "scope": 9282,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9267,
                                                "name": "ElementaryTypeName",
                                                "src": "35430:7:18"
                                            }
                                        ],
                                        "id": 9268,
                                        "name": "VariableDeclaration",
                                        "src": "35430:14:18"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "scalingFactor",
                                            "scope": 9282,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9269,
                                                "name": "ElementaryTypeName",
                                                "src": "35446:7:18"
                                            }
                                        ],
                                        "id": 9270,
                                        "name": "VariableDeclaration",
                                        "src": "35446:21:18"
                                    }
                                ],
                                "id": 9271,
                                "name": "ParameterList",
                                "src": "35429:39:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 9282,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9272,
                                                "name": "ElementaryTypeName",
                                                "src": "35492:7:18"
                                            }
                                        ],
                                        "id": 9273,
                                        "name": "VariableDeclaration",
                                        "src": "35492:7:18"
                                    }
                                ],
                                "id": 9274,
                                "name": "ParameterList",
                                "src": "35491:9:18"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 9274
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "mulDown",
                                                            "referencedDeclaration": 537,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 780,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 9275,
                                                                "name": "Identifier",
                                                                "src": "35948:10:18"
                                                            }
                                                        ],
                                                        "id": 9276,
                                                        "name": "MemberAccess",
                                                        "src": "35948:18:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9268,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 9277,
                                                        "name": "Identifier",
                                                        "src": "35967:6:18"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9270,
                                                            "type": "uint256",
                                                            "value": "scalingFactor"
                                                        },
                                                        "id": 9278,
                                                        "name": "Identifier",
                                                        "src": "35975:13:18"
                                                    }
                                                ],
                                                "id": 9279,
                                                "name": "FunctionCall",
                                                "src": "35948:41:18"
                                            }
                                        ],
                                        "id": 9280,
                                        "name": "Return",
                                        "src": "35941:48:18"
                                    }
                                ],
                                "id": 9281,
                                "name": "Block",
                                "src": "35501:496:18"
                            }
                        ],
                        "id": 9282,
                        "name": "FunctionDefinition",
                        "src": "35412:585:18"
                    }
                ],
                "id": 9283,
                "name": "ContractDefinition",
                "src": "1036:34966:18"
            }
        ],
        "id": 9284,
        "name": "SourceUnit",
        "src": "117:35885:18"
    },
    "compiler": {
        "name": "solc",
        "version": "0.7.1+commit.f4a555be.Emscripten.clang"
    },
    "networks": {
        "11155111": {
            "events": {
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x4bbb221ed2740b5d1fde83b4f627802ff5462a27e60c2edff0b88fdb1ea9b284": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "bytes32",
                            "name": "poolId",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "investor",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "securitySubscription",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "allotedAmount",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "timestamp",
                            "type": "uint256"
                        }
                    ],
                    "name": "allotments",
                    "type": "event"
                },
                "0x56eadf552f1d54f8f73fbbf801097c1c4d7bb3d77d5ac2bebfd0a8151642d55a": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "bytes32",
                            "name": "poolId",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "timestamp",
                            "type": "uint256"
                        }
                    ],
                    "name": "closures",
                    "type": "event"
                },
                "0xeaad90c8664cdf61d60bd7ba6745a881fd1c38d9f4ff0b373b4365cdeeb0f9e8": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "platform",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "collection",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "timestamp",
                            "type": "uint256"
                        }
                    ],
                    "name": "feecollection",
                    "type": "event"
                },
                "0x9426088b1d278a7af8f917da4fae1aa63b954ba475dd3b6ba9c6539508c29d7c": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "platform",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "provider",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "tokenOffered",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "underwritten",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "earnings",
                            "type": "uint256"
                        }
                    ],
                    "name": "marketmakers",
                    "type": "event"
                },
                "0x647111dfd26aa614f3a039ffe52dcfcd383ba2900b9ed21cde54b318f92707a7": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "party",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "offered",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "amountOffered",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "tomatch",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "amountDesired",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "minAmount",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "bytes32",
                            "name": "isin",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "minimumOrderSize",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "string",
                            "name": "offeringDocs",
                            "type": "string"
                        }
                    ],
                    "name": "offers",
                    "type": "event"
                },
                "0xbd39de70db9f51c606065fcb0157b3d97984d1ec579fa55b555e78eb8460af7e": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "bytes32",
                            "name": "poolId",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "investor",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "securitySubscription",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "refundAmount",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "timestamp",
                            "type": "uint256"
                        }
                    ],
                    "name": "refunds",
                    "type": "event"
                },
                "0x5c520d8718b066e97bb13ab129eea39c9edcbf16de59770e2e191bc2421070b8": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "bytes32",
                            "name": "poolId",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "liquidityProvider",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "underwritingFee",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "issuer",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "subscription",
                            "type": "uint256"
                        }
                    ],
                    "name": "settlements",
                    "type": "event"
                },
                "0x03e4d401f7446bde326c5951f40797b975fbe06e73f36b2a41646ea680cc40f2": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "bytes32",
                            "name": "poolId",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "investor",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "cashSwapped",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "securitySwapped",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "timestamp",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "bool",
                            "name": "subscription",
                            "type": "bool"
                        }
                    ],
                    "name": "subscribers",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0x56B802f315e97c2BDDb0dA5F13EE8e11cBa3846B",
            "transactionHash": "0xeae53e09711e3f7de7471068c273af69f6d2a9ea8909a16868720b2052c6551a"
        }
    },
    "schemaVersion": "3.4.3",
    "updatedAt": "2025-03-31T18:43:15.113Z",
    "networkType": "ethereum",
    "devdoc": {
        "kind": "dev",
        "methods": {
            "accept(bytes32,address,uint256,address)": {
                "params": {
                    "amnt": "amount of investment (subscription capital) accepted by issuer for which allotment of security tokens are made to investor",
                    "asset": "address of asset which is used by investor to subscribe to the issue",
                    "investor": "address of investor (subscriber)",
                    "poolid": "identifier of primary issue pool in which subscription is made by investor"
                }
            },
            "close(address)": {
                "params": {
                    "security": "address of security token"
                }
            },
            "getAllotedStake(address)": {
                "params": {
                    "_token": "address of token allocated earlier to asset manager (message sender)"
                }
            },
            "getLiquidityProviders(address)": {
                "params": {
                    "_security": "identifier for the security token offered"
                }
            },
            "getOfferMade(address,address)": {
                "params": {
                    "_owned": "address of token offered",
                    "_tomatch": "address of token to match"
                }
            },
            "getOffered(address)": {
                "params": {
                    "offered": "address of offered token"
                }
            },
            "getSubscribers(bytes32)": {
                "params": {
                    "poolId": "identifier for a primary issue pool for which subscribers are to be returned"
                }
            },
            "initialize(address,uint256,address,address,address,address,address)": {
                "params": {
                    "_factory": "reference to the primary issue pool factory contract",
                    "_products": "reference to the Verified Products contract that this contract reports created primary issue pools to",
                    "_swapFeePercentage": "percentage of trading fee to be charged by the asset manager",
                    "_vault": "reference to the Balancer vault"
                }
            },
            "issue(address,uint256,address)": {
                "params": {
                    "cutoffTime": "time in milliseconds by when offer closes",
                    "security": "security offered to the primary issue pool"
                }
            },
            "offer(address,bytes32,uint256,address,uint256,uint256,address,string)": {
                "params": {
                    "desired": "is the amount required of the liquidity token to be paired",
                    "docs": "is the ipfs address of the offering docs",
                    "isin": "is the identifier for the security token offered",
                    "min": "is the minimum amount to be swapped of the 'offered' token ",
                    "offered": "is the amount offered",
                    "owned": "is the security or settlement token on offer ",
                    "owner": "is the current holder of the owned token that is offered",
                    "tomatch": "is the liquidity token that is required to be paired"
                }
            },
            "owner()": {
                "details": "Returns the address of the current owner."
            },
            "reject(bytes32,address)": {
                "params": {
                    "investor": "address of investor (subscriber)",
                    "poolid": "identifier for primary issue pool to which investor has subscribed"
                }
            },
            "renounceOwnership()": {
                "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
            },
            "settle(bytes32)": {
                "params": {
                    "poolId": "identifier for primary issue pool"
                }
            },
            "stake(uint256,address,address)": {
                "params": {
                    "_amount": "amount of tokens staked to provide liquidity for underwriting investments in tokenized securities",
                    "_manager": "address of asset manager",
                    "_token": "address of token staked"
                }
            },
            "transferOwnership(address)": {
                "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
            }
        },
        "version": 1
    },
    "userdoc": {
        "kind": "user",
        "methods": {
            "accept(bytes32,address,uint256,address)": {
                "notice": "Called by issuer to accept subscription to issue by investor"
            },
            "close(address)": {
                "notice": "Called by issuer to close subscription of 'security' issued by it"
            },
            "getAllotedStake(address)": {
                "notice": "Gets liquidity allotted for asset manager (message sender)"
            },
            "getLiquidityProviders(address)": {
                "notice": "Fetches liquidity providers for a security token"
            },
            "getOfferMade(address,address)": {
                "notice": "Gets offer made previously"
            },
            "getOffered(address)": {
                "notice": "Gets tokens to match for offered token"
            },
            "getSubscribers(bytes32)": {
                "notice": "Fetches investors (subscribers) to a primary issue pool"
            },
            "initialize(address,uint256,address,address,address,address,address)": {
                "notice": "Initializes this asset management contract"
            },
            "issue(address,uint256,address)": {
                "notice": "Called by issuer of 'security' token to open an issue which will last till 'cutoffTime'"
            },
            "offer(address,bytes32,uint256,address,uint256,uint256,address,string)": {
                "notice": "Called by market maker and issuer for adding liquidity"
            },
            "reject(bytes32,address)": {
                "notice": "Called by issuer to reject subscription to issue by investor"
            },
            "settle(bytes32)": {
                "notice": "Called by product issuer to settle distribution of fee income arising from investment underwritten in the primary issue pool"
            },
            "stake(uint256,address,address)": {
                "notice": "Called by Liquidity token contract to stake tokens by investors"
            }
        },
        "version": 1
    }
}
