{
  "contractName": "UBISchemeMock",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        },
        {
          "internalType": "contract Identity",
          "name": "_identity",
          "type": "address"
        },
        {
          "internalType": "contract FirstClaimPool",
          "name": "_firstClaimPool",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_periodStart",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_periodEnd",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_maxInactiveDays",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_cycleLength",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ActivatedUser",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "fished_account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimAmount",
          "type": "uint256"
        }
      ],
      "name": "InactiveUserFished",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "by",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "time",
          "type": "uint256"
        }
      ],
      "name": "SchemeEnded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "by",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "time",
          "type": "uint256"
        }
      ],
      "name": "SchemeStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "total",
          "type": "uint256"
        }
      ],
      "name": "TotalFished",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "day",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "dailyUbi",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "blockNumber",
          "type": "uint256"
        }
      ],
      "name": "UBICalculated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "claimer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "UBIClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "day",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "pool",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "cycleLength",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "dailyUBIPool",
          "type": "uint256"
        }
      ],
      "name": "UBICycleCalculated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimers",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimamount",
          "type": "uint256"
        }
      ],
      "name": "UBIEnded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "time",
          "type": "uint256"
        }
      ],
      "name": "UBIStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "prevBalance",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newBalance",
          "type": "uint256"
        }
      ],
      "name": "WithdrawFromDao",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "activeUsersCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "checkEntitlement",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "claim",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "claimDistribution",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currentCycleLength",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currentDay",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currentDayInCycle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "cycleLength",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "dailyCyclePool",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "dailyUBIHistory",
      "outputs": [
        {
          "internalType": "bool",
          "name": "hasWithdrawn",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "openAmount",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "dailyUbi",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "end",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "firstClaimPool",
      "outputs": [
        {
          "internalType": "contract FirstClaimPool",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "fish",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_accounts",
          "type": "address[]"
        }
      ],
      "name": "fishMulti",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "fishedUsersAddresses",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "day",
          "type": "uint256"
        }
      ],
      "name": "getClaimAmount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "day",
          "type": "uint256"
        }
      ],
      "name": "getClaimerCount",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getDailyStats",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "count",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasClaimed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "identity",
      "outputs": [
        {
          "internalType": "contract Identity",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isActive",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "isActiveUser",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "_account",
          "type": "address"
        }
      ],
      "name": "isNotNewUser",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isOwner",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isRegistered",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "scheme",
          "type": "address"
        }
      ],
      "name": "isRegistered",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "iterationGasLimit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "lastClaimed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "lastWithdrawDay",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "maxInactiveDays",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "periodEnd",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "periodStart",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract Avatar",
          "name": "_avatar",
          "type": "address"
        }
      ],
      "name": "setAvatar",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_newLength",
          "type": "uint256"
        }
      ],
      "name": "setCycleLength",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "setDay",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract Identity",
          "name": "_identity",
          "type": "address"
        }
      ],
      "name": "setIdentity",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bool",
          "name": "_shouldWithdraw",
          "type": "bool"
        }
      ],
      "name": "setShouldWithdrawFromDAO",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "shouldWithdrawFromDAO",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "start",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "startOfCycle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "totalClaimsPerUser",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "prevUBIScheme",
          "type": "address"
        }
      ],
      "name": "upgrade",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"contract Identity\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"contract FirstClaimPool\",\"name\":\"_firstClaimPool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_periodStart\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_periodEnd\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxInactiveDays\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_cycleLength\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"ActivatedUser\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fished_account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"InactiveUserFished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"SchemeEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"SchemeStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"}],\"name\":\"TotalFished\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"day\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dailyUbi\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"UBICalculated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UBIClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"day\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pool\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cycleLength\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dailyUBIPool\",\"type\":\"uint256\"}],\"name\":\"UBICycleCalculated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimers\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimamount\",\"type\":\"uint256\"}],\"name\":\"UBIEnded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"UBIStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"prevBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"WithdrawFromDao\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"activeUsersCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"checkEntitlement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"claimDistribution\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentCycleLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentDay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentDayInCycle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"dailyCyclePool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"dailyUBIHistory\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"hasWithdrawn\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"openAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"dailyUbi\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"end\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"firstClaimPool\",\"outputs\":[{\"internalType\":\"contract FirstClaimPool\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"fish\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_accounts\",\"type\":\"address[]\"}],\"name\":\"fishMulti\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"fishedUsersAddresses\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"day\",\"type\":\"uint256\"}],\"name\":\"getClaimAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"day\",\"type\":\"uint256\"}],\"name\":\"getClaimerCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getDailyStats\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"identity\",\"outputs\":[{\"internalType\":\"contract Identity\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isActiveUser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isNotNewUser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"scheme\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"iterationGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastClaimed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastWithdrawDay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxInactiveDays\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"periodEnd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"periodStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"setAvatar\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newLength\",\"type\":\"uint256\"}],\"name\":\"setCycleLength\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"setDay\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Identity\",\"name\":\"_identity\",\"type\":\"address\"}],\"name\":\"setIdentity\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_shouldWithdraw\",\"type\":\"bool\"}],\"name\":\"setShouldWithdrawFromDAO\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"shouldWithdrawFromDAO\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"start\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"startOfCycle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"totalClaimsPerUser\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevUBIScheme\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"checkEntitlement()\":{\"details\":\"Checks the amount which the sender address is eligible to claim for, regardless if they have been whitelisted or not. In case the user is active, then the current day must be equal to the actual day, i.e. claim or fish has already been executed today.\",\"return\":\"The amount of GD tokens the address can claim.\"},\"claim()\":{\"details\":\"Function for claiming UBI. Requires contract to be active and claimer to be whitelisted. Calls distributionFormula, calculats the amount the caller can claim, and transfers the amount to the caller. Emits the address of caller and amount claimed.\",\"return\":\"A bool indicating if UBI was claimed\"},\"currentDayInCycle()\":{\"details\":\"returns the day count since start of current cycle\"},\"fish(address)\":{\"details\":\"In order to update users from active to inactive, we give out incentive to people to update the status of inactive users, this action is called \\\"Fishing\\\". Anyone can send a tx to the contract to mark inactive users. The \\\"fisherman\\\" receives a reward equal to the daily UBI (ie instead of the \\u201cfished\\u201d user). User that \\u201clast claimed\\u201d > 14 can be \\\"fished\\\" and made inactive (reduces active users count by one). Requires contract to be active.\",\"params\":{\"_account\":\"to fish\"},\"return\":\"A bool indicating if UBI was fished\"},\"fishMulti(address[])\":{\"details\":\"executes `fish` with multiple addresses. emits the number of users from the given array who actually been tried being fished.\",\"params\":{\"_accounts\":\"to fish\"},\"return\":\"A bool indicating if all the UBIs were fished\"},\"hasClaimed(address)\":{\"details\":\"Checks if the given account has claimed today\",\"params\":{\"account\":\"to check\"},\"return\":\"True if the given user has already claimed today\"},\"isActiveUser(address)\":{\"details\":\"Checks weather the given address is owned by an active user. A registered user is a user that claimed at least one time. An active user is a user that claimed at least one time but claimed at least one time in the last `maxInactiveDays` days. A user that has not claimed for `maxInactiveDays` is an inactive user.\",\"params\":{\"_account\":\"to check\"},\"return\":\"True for active user\"},\"isNotNewUser(address)\":{\"details\":\"Checks if the given account has been owned by a registered user.\",\"params\":{\"_account\":\"to check\"},\"return\":\"True for an existing user. False for a new user\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"isRegistered()\":{\"details\":\"function to see if an avatar has been set and if this scheme is registered\",\"return\":\"true if scheme is registered\"},\"isRegistered(address)\":{\"details\":\"function to see if an avatar has been set and if this scheme is registered\",\"return\":\"true if scheme is registered\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract.\"},\"setAvatar(address)\":{\"details\":\"Function to set a new avatar and controller for scheme can only be done by owner of scheme\"},\"setCycleLength(uint256)\":{\"details\":\"sets the ubi calculation cycle length\",\"params\":{\"_newLength\":\"the new length in days\"}},\"setShouldWithdrawFromDAO(bool)\":{\"details\":\"Sets whether to also withdraw GD from avatar for UBI\",\"params\":{\"_shouldWithdraw\":\"boolean if to withdraw\"}},\"start()\":{\"details\":\"Start function. Adds this contract to identity as a feeless scheme and adds permissions to FirstClaimPool Can only be called if scheme is registered\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}},\"title\":\"An UBIScheme mock. Ignores the scheme registration. Those tests can be found on e2e tests.\"},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"setDay()\":{\"notice\":\"dev Sets the currentDay variable to amount of days since start of contract.\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/stakingModel/contracts/mocks/UBISchemeMock.sol\":\"UBISchemeMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/dao/schemes/ActivePeriod.sol\":{\"keccak256\":\"0xd6b17fe8c789a03e87c80046319caee9fc9c9b5ded9008b09a550027c205c5ab\",\"urls\":[\"bzz-raw://0f77e8dc5f6abeefc9a2e185c257516f7f0266ae2781dd67c18daf1aac667daf\",\"dweb:/ipfs/QmbeRqLP2MvTZifqPBSK3PUDh8TjC1RaTA8b1dRRAXahmJ\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/dao/schemes/FeeFormula.sol\":{\"keccak256\":\"0x2ac93f891a65aa60b93e2b27552850dfa459b88f5a19edc29bb5bab0cc4f3eaa\",\"urls\":[\"bzz-raw://bddb94bc0230d959d2362887a253a47b91f0de6804cba8e4569a7cac47c39b5a\",\"dweb:/ipfs/QmTdkPQHRdzxJ7D7pi9cowLgYY9wVja416dhBwCsdtPEv5\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/dao/schemes/FeelessScheme.sol\":{\"keccak256\":\"0x7c542d44cbd864ee0ddecbc5016d9d7eb9ce65ab463fdd9f21eb8ce3c6ffc8ea\",\"urls\":[\"bzz-raw://4753dd823c0b0cbe7d7d02e1df64ace07d7a163af3aaff12697aee70a1b45f2f\",\"dweb:/ipfs/QmPkKeH88M3f6UbHphayUbjEBNV4rmoogtDmVundzBKbFK\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/dao/schemes/FormulaHolder.sol\":{\"keccak256\":\"0xb3c0d3bc21e71497784e1be11698ff501ee11545c3106bec2cae2e8af1bacd9b\",\"urls\":[\"bzz-raw://783b4e28b67231de0fbbe48e58f43f69db3f98fd7f75668edce145a55a9b5b17\",\"dweb:/ipfs/QmdeyRfeix3PGfaXqtRQpH1sjmjFpdtuGaPwnvRn7nHAWd\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/dao/schemes/SchemeGuard.sol\":{\"keccak256\":\"0x32e1b2a172e2c22a6aa757bfcb0722cc67f64c5c2e48df3dec2737903516d565\",\"urls\":[\"bzz-raw://bee57a8eba08348e93a0c18f3ab534e67865c0fa27afe27f5cf234bd5f248915\",\"dweb:/ipfs/Qmd8aveHWcUkYWMyJrJRZPyVXj8MAMBfpBFo6g4Z2VJeo3\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/dao/schemes/UBI.sol\":{\"keccak256\":\"0x19958afd1c28980b55c601025ab027ea196846e98357a528aab7034f76f7e08a\",\"urls\":[\"bzz-raw://f24ee7cd5d221d29cff4a99020cd428eb164fec7a109acbe3bb0aef614b5ef37\",\"dweb:/ipfs/QmSyyXLQ8Bsi3kq3vySm3sfpyRvyH93mQ4HPN1gorRXLZp\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/identity/Identity.sol\":{\"keccak256\":\"0x282184478f1d618d3523b28a84a7f7003dfdc99cad120e5e358d2cce1f5fb491\",\"urls\":[\"bzz-raw://67e17ecb57b24c4fb801abc2c52c3148af3b967e28da4fb7e074d18efb7a57c1\",\"dweb:/ipfs/QmfZ8jXhdTHtxr3gfByRj4HnXnGynX7SLZWWGR8k768aGB\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/identity/IdentityAdminRole.sol\":{\"keccak256\":\"0x8e82c45eefe0da77d017144dfad12602c68124297035937901cdd08ce48c57ff\",\"urls\":[\"bzz-raw://e20e606342b3b35f41a081294cf3f716fe7e27e81d3090daa37c5208f4ef4bc3\",\"dweb:/ipfs/QmVEhHpiwVsksnPyHkfNa5LpTBLxoP9kj5NRZUBv456ewK\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/identity/IdentityGuard.sol\":{\"keccak256\":\"0xcc395c0e8f812201b5ed1f45e7272120ee5ffe73bfe13e325dfd872aef235b22\",\"urls\":[\"bzz-raw://58f93e4b9f48ec31ac151208e4f9e6b356cc23dfc9585d846bc09bf35d6ff7be\",\"dweb:/ipfs/QmdxJHUCaFx8N66kkDhYdA4k6d2V91yBRG6sombuPxBq7X\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/token/ERC677/ERC677.sol\":{\"keccak256\":\"0x8360b9e356df8584d95990bb7e772342b30d9e22b160f7c875fbca5c0b87453c\",\"urls\":[\"bzz-raw://97cc6e5586cedcd49462cc465a2a8fc5063d7ec6cb9533f4e0099969a75bd4b2\",\"dweb:/ipfs/QmXw6y4iXfqyJHDRrHdd5ofQ6E4cuHDw4LiYupReJ1rCBc\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/token/ERC677/ERC677Receiver.sol\":{\"keccak256\":\"0xc5683b28527097379ed090b28bb46e17a50a2c57ddcb3c7e028fcd04ddc64aef\",\"urls\":[\"bzz-raw://639f6b6cf65382faea738e6326d6aeb289b8b030cf02f40c54bc45ec098eda6d\",\"dweb:/ipfs/QmQi7dFcKiwUxSbzhus4CxFTdNJvUsfiqY6i3bD4RdMQrn\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/token/ERC677BridgeToken.sol\":{\"keccak256\":\"0x014fa09dca773b1406855e628687be50c1eb129894f45a8b5c9fc709d826968d\",\"urls\":[\"bzz-raw://23c6491c0c26471315010687d785a3724ae33198be6ed39828d1a4f7e6873cb4\",\"dweb:/ipfs/QmW62FXHtLdNGzB8Nq9XwmwHp6Jn8jgbAVyrU2j7c7w6By\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/token/ERC677Token.sol\":{\"keccak256\":\"0x553a103b911d77cecb2ce3f355b2370c4a23eb070593d7c8eb46f33e3a5ff141\",\"urls\":[\"bzz-raw://e37438ce280964498b77f63bbe4d1f25c55ff4c178925447a70decceda06e46c\",\"dweb:/ipfs/QmbqCLhWjZqpFBnUVb3H7LkEbAaVmhf76Ln14oWnGimYGM\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/contracts/token/GoodDollar.sol\":{\"keccak256\":\"0x7b91359f6912641c7dbfeced9a5c47454acce7c2cab9205d00b8049d228d7b78\",\"urls\":[\"bzz-raw://3a09bc6936d0179e2e5be2687446532d63135bc537f7ab246c6a1101d4849c1f\",\"dweb:/ipfs/QmNshqF7Xu7UX8BryKYRbnRQdTfytPappxkHq5xMxF5vpE\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/stakingModel/contracts/FirstClaimPool.sol\":{\"keccak256\":\"0x9d993de183f6574702058a2e9c572b33db6057cee66ee5b094b95d959423a151\",\"urls\":[\"bzz-raw://47194a2daf7bd73d77e7ef5dfc8c45c40e13f7788e3c8c06d1fa8f8bdc85fc8e\",\"dweb:/ipfs/Qmd2QzqNkZ77BLKxyKAuhUJ3uH716nK8NxsXYbN7vNccfk\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/stakingModel/contracts/UBIScheme.sol\":{\"keccak256\":\"0x8ec83267509a43752de03994c9695ae1b069e9c61bcb0a04db211dce9d9e62b0\",\"urls\":[\"bzz-raw://1151cb597264dc0b6e230578b48c2721569fdbd168e18432c5f57c9054be3f7c\",\"dweb:/ipfs/QmauAP1DJxYw6ZAJaMbLXSutPvPXFhcvoArVTEuzsfbryj\"]},\"/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/stakingModel/contracts/mocks/UBISchemeMock.sol\":{\"keccak256\":\"0xc1f94142e8b71d06b950f8174704398d8fc30298302d7ba7e4673e76f02a7830\",\"urls\":[\"bzz-raw://6f2df3b33601c2445e0f1c531ea8c8ca3f2f0e11bad5cc605763c462e7bd5bf5\",\"dweb:/ipfs/QmbqJufj9e5Szu6Rq1SEKM4tgefpjnQwGkDzNRQEZTp7sp\"]},\"@daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0x4e4fb9d3bc21f42fbfc6a01e9f8aa483a59e9f447b0d604f55b587a81ec09ef4\",\"urls\":[\"bzz-raw://9d3c1c7575cf6075ea1d89921f09b9b8e322b208dacaf0446cd4f64506c999f0\",\"dweb:/ipfs/QmVGDDHAR2ByuQpbgV7BBKXGEAcbaWvejpEZYzHgaagBFK\"]},\"@daostack/arc/contracts/controller/ControllerInterface.sol\":{\"keccak256\":\"0x933e92612c90f292c7b59908958b003f1a13d90b97bed0572b566353c20974dc\",\"urls\":[\"bzz-raw://ce1fcf85b744fcce2dbd4205e3943e9b4ec36a5f0330d4bbf61e65f1a3e0e470\",\"dweb:/ipfs/QmUWiLkBDdekhpy93nTzBtxDHL6yNh6sTUM9G8VbsHcBzy\"]},\"@daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x9b213e4e3ceeffcfc1c962a43b70b8d763d8091a2dd713fc1989b97bb68786e6\",\"urls\":[\"bzz-raw://51d1d6e85fd90f45395a16b7a3c703c4636e836041f2a13f806e4222ef2e59c1\",\"dweb:/ipfs/QmQjeCeFf7TJzsYjT5scyZUDDixBA8Yy8YppgBuxcKPDnP\"]},\"@daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0xc006c4591ec10b845a56e13f6791db2c428610953034686d52b2a934b6c8f36f\",\"urls\":[\"bzz-raw://19495cd88280e54d7ddcd043ffeff75e6d3777a0c42debcd61cae448e9497ea0\",\"dweb:/ipfs/QmYxWz7CgFmmddrcVXJKfob5Ktwykc2imNVUwLSR5WR8bJ\"]},\"@daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0xf6727d432f67046145b078f40c1cc4f6be7b0d12a6678ecaf457edf7550d244c\",\"urls\":[\"bzz-raw://5dba7734c4fed446c084a707761cbc66ba22b8b93ef53c8d4a22a76b6e271690\",\"dweb:/ipfs/QmP2VpPKUqLh4ZZs6LaxHVpCN1zCmiorygL9bMub4mbYCw\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0x3d226dac0fe7d758f0287fb28bc25fcec1f69d19888ae3a550fa49856d61c482\",\"urls\":[\"bzz-raw://8856852c8fe0ba1c9aab326f0a9a6e7f31a238de2778fa5188e6fc399f7eb352\",\"dweb:/ipfs/QmVH4ppR9Dk7v8yxaSgeArdMv9gBBVoQxEf4E3UsqQ4rY2\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0x659ba0f9a3392cd50a8a5fafaf5dfd8c6a0878f6a4613bceff4e90dceddcd865\",\"urls\":[\"bzz-raw://4ca6617349a9b36fd82e9442a8e445ce9021a174e4399d1457ddc894ee3f5df3\",\"dweb:/ipfs/QmcmyB4cNazZ1sw963Afaijt67M9bDgwmGXCgQajGTD4tm\"]},\"openzeppelin-solidity/contracts/access/roles/MinterRole.sol\":{\"keccak256\":\"0x3199053db04cdae6c9b4380921a4a4ee720b568d6a9660883b29d25fbec31bc0\",\"urls\":[\"bzz-raw://1b0ff368e21d6007c06e4cfb286fe59d7d7d3ec06283300c9be2153ba11fa93a\",\"dweb:/ipfs/QmRPq2wZM4RAcbj31dP34GCr1CSy2qy3JqfXEkdVie4HLT\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0x6506133e295a7199df2ac5dfc52853d9d767f68450b6d0193e9d8056b164ce86\",\"urls\":[\"bzz-raw://9c03592a9e6b1377e401b74eccf175a250232b5a341347d3fc5cb50e9bc86ba2\",\"dweb:/ipfs/QmYAr1yXT89hNUMJ37aiBpD9HtYfBDqmueVCzphRuuU7oZ\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x3b0ed31deeba7e3c6cfbbe8092a6b427084ee390800a06acdea5c17c8185d606\",\"urls\":[\"bzz-raw://bbdbf9d3754fcdcc85aec0432fabcec914317b1c2081b43753442ed53853a34a\",\"dweb:/ipfs/QmVHWQBn5xQkQEHhyGNEeS5gjjALZEk5ZfcjFt7kL6MoLy\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x965012d27b4262d7a41f5028cbb30c51ebd9ecd4be8fb30380aaa7a3c64fbc8b\",\"urls\":[\"bzz-raw://1eb493553b27efd46c231a836a83ce50d215639feb97b4aac9f301d0fd034ff5\",\"dweb:/ipfs/QmbMdvSXcqGKxeeYvzF3VrWpoHQyVzMXBhzhAokF2Gdymv\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x980de387a1a020a498f53d00f89fecebb12c949a17e8f160093c0303ede2b786\",\"urls\":[\"bzz-raw://f07a2c393caa85f62f0aaa461e3edd50aa59371d4209778ba0558d7f8b4b856c\",\"dweb:/ipfs/QmeN3ZiYGSjCnQFeYaJNgoXjF9eDue1g3e9pqManRkeBtV\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xba431353cb4fe70777ac026231eb5468e41aa1e81240a2b8136917acc5fff4dc\",\"urls\":[\"bzz-raw://f40c91ca270bdc9b156f339081a0fc2bbcf73cf5f62b8c73ba555df753ff6619\",\"dweb:/ipfs/QmT8y2VVjGaFdGphpcXrgvdPi2EgF9LuCDgJiJ89LvpFRV\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa3e68fd7f987c8fbdaf4867d428a69a15f3cf2f69709a5b0a0fbef750b0e6fbc\",\"urls\":[\"bzz-raw://50b1ff986d3b2793850a66c8429d9886fdfb134b1509b3e98714e3e2a71e24f5\",\"dweb:/ipfs/QmSQBYPeY9tbR3ciGRNQqvcWKnNiuxtVMq2MsPWpLwuGGm\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0x37b840977505e5f6d74bc8fa3d0217facc7913d0ecf064da3e3b26494acd37de\",\"urls\":[\"bzz-raw://7456513521bae915089dfd5879b685e47f3f180ad9ffe24cc3b19275b1da28ed\",\"dweb:/ipfs/QmbM1avKkyyTHEeTs3CqheyZwgAMNzVi3iDudqBdUJ2WPM\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x079c4e23ee448f529e43bfa3c4e8fb4be52cd0318ee923a276835bedf45b93d8\",\"urls\":[\"bzz-raw://ee762ff5b7746e41d27dcbcea00c7a3034b58adb1b45ddadddb5b721aff450df\",\"dweb:/ipfs/QmdxqtgEFZjHCoiYyz6pUAQ5iBm7As25jcyEbZoTaAgyDa\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x5c731061b804fa256fc8c05150eafe5d20b6bb94541a8f187912bf84f7033f34\",\"urls\":[\"bzz-raw://a3c2d9f046beebab7fb41b1b124a6a124a36f510f7c67365861402ac831bdc71\",\"dweb:/ipfs/QmUtASRgitregbKH83anopLtF9vFQe3BKeAjhUa6F7t9YV\"]}},\"version\":1}",
  "bytecode": "0x6080604052600580546001600160a01b0319169055620249f0600d553480156200002857600080fd5b50604051620037b4380380620037b4833981810160405260e08110156200004e57600080fd5b508051602082015160408301516060840151608085015160a086015160c09096015194959394929391929091908686868686868686866000868683858181858582818310620000cf5760405162461bcd60e51b81526004018080602001828103825260268152602001806200378e6026913960400191505060405180910390fd5b600092835560019190915560028054610100600160a81b0319166101006001600160a01b03938416021760ff1916905560038054336001600160a01b03199091161790819055604051911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600480546001600160a01b0319166001600160a01b0383811691909117918290551615620001fa576004805460408051638da5cb5b60e01b815290516001600160a01b0390921692638da5cb5b928282019260209290829003018186803b158015620001ac57600080fd5b505afa158015620001c1573d6000803e3d6000fd5b505050506040513d6020811015620001d857600080fd5b5051600580546001600160a01b0319166001600160a01b039092169190911790555b506001600160a01b03811662000257576040805162461bcd60e51b815260206004820152601960248201527f537570706c696564206964656e74697479206973206e756c6c00000000000000604482015290519081900360640190fd5b600680546001600160a01b039092166001600160a01b031990921691909117905550505060079190915550505081620002d7576040805162461bcd60e51b815260206004820181905260248201527f4d617820696e61637469766520646179732063616e6e6f74206265207a65726f604482015290519081900360640190fd5b601091909155601680546001600160a01b039095166001600160a01b03199095169490941790935550506011805460129290925560ff19909116600117905550505050505050505061345f806200032f6000396000f3fe608060405234801561001057600080fd5b506004361061028a5760003560e01c80638081cbbd1161015c578063c1337508116100ce578063dddc361611610087578063dddc36161461067e578063de1de3a014610686578063eac471a0146106a5578063eda4e6d6146106ad578063efbe1c1c146106b5578063f2fde38b146106bd5761028a565b8063c13375081461054f578063c3c5a547146105f0578063c7a76adf14610616578063cc054dfc14610633578063cef6360014610659578063d7c4cbb8146106765761028a565b80639dc2c033116101205780639dc2c03314610501578063a21f698a14610509578063b656223d1461052f578063ba07541014610537578063be9a65551461053f578063c033abf2146105475761028a565b80638081cbbd146104d9578063884a41be146104e15780638da5cb5b146104e95780638f32d59b146104f157806398d6621b146104f95761028a565b80633d84ceca11610200578063560796d1116101b9578063560796d11461043d5780635c9302c9146104755780635d5bf1781461047d578063715018a6146104a357806373b2e80e146104ab578063741470ac146104d15761028a565b80633d84ceca146103bc5780634202d214146103d9578063456ac1c2146103ff5780634e71d92d14610407578063506ec0951461040f5780635231e2f0146104175761028a565b80631bbc644c116102525780631bbc644c1461033e5780631d8f5ea914610378578063223668441461038057806322b457271461038857806322f3e2d4146103905780632c159a1a146103985761028a565b8063013eba921461028f578063069786ea146102c7578063086cfca8146102e85780630900f010146103105780630ce82d6714610336575b600080fd5b6102b5600480360360208110156102a557600080fd5b50356001600160a01b03166106e3565b60408051918252519081900360200190f35b6102cf6106f5565b6040805192835260208301919091528051918290030190f35b61030e600480360360208110156102fe57600080fd5b50356001600160a01b0316610738565b005b61030e6004803603602081101561032657600080fd5b50356001600160a01b03166107ef565b6102b5610d8a565b6103646004803603602081101561035457600080fd5b50356001600160a01b0316610dba565b604080519115158252519081900360200190f35b6102b5610f6e565b610364610f74565b6102b5610f7f565b610364610f85565b6103a0610f8e565b604080516001600160a01b039092168252519081900360200190f35b61030e600480360360208110156103d257600080fd5b5035610f9d565b610364600480360360208110156103ef57600080fd5b50356001600160a01b0316611040565b6103646110a2565b6103646110ab565b6102b5611207565b6103646004803603602081101561042d57600080fd5b50356001600160a01b031661120d565b61045a6004803603602081101561045357600080fd5b5035611222565b60408051921515835260208301919091528051918290030190f35b6102b5611241565b61030e6004803603602081101561049357600080fd5b50356001600160a01b0316611247565b61030e611330565b610364600480360360208110156104c157600080fd5b50356001600160a01b031661138b565b6102b56113b8565b6103a06113be565b6102b56113cd565b6103a06113d3565b6103646113e2565b6102b56113f3565b6102b561163d565b6103646004803603602081101561051f57600080fd5b50356001600160a01b0316611643565b6102b561166c565b6102b5611672565b61030e611678565b6102b56118a7565b6102b56004803603602081101561056557600080fd5b810190602081018135600160201b81111561057f57600080fd5b82018360208201111561059157600080fd5b803590602001918460208302840111600160201b831117156105b257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506118ad945050505050565b6103646004803603602081101561060657600080fd5b50356001600160a01b0316611a6e565b6102b56004803603602081101561062c57600080fd5b5035611b5c565b6102b56004803603602081101561064957600080fd5b50356001600160a01b0316611b71565b6102b56004803603602081101561066f57600080fd5b5035611b83565b6102b5611b98565b61030e611b9e565b61030e6004803603602081101561069c57600080fd5b50351515611bbf565b6102b5611c31565b6102b5611c37565b61030e611c3d565b61030e600480360360208110156106d357600080fd5b50356001600160a01b0316611ca6565b600a6020526000908152604090205481565b60008060006201518061071360005442611cc090919063ffffffff16565b8161071a57fe5b04905061072681611b5c565b61072f82611b83565b92509250509091565b6107406113e2565b61074957600080fd5b600480546001600160a01b0319166001600160a01b038381169190911780835560408051638da5cb5b60e01b815290519190921692638da5cb5b92808201926020929091829003018186803b1580156107a157600080fd5b505afa1580156107b5573d6000803e3d6000fd5b505050506040513d60208110156107cb57600080fd5b5051600580546001600160a01b0319166001600160a01b0390921691909117905550565b6107f7611678565b6001600160a01b03811615610d87576000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b15801561085657600080fd5b505afa15801561086a573d6000803e3d6000fd5b505050506040513d602081101561088057600080fd5b5051604080516370a0823160e01b81526001600160a01b0385811660048301529151929350600092918416916370a0823191602480820192602092909190829003018186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d60208110156108fc57600080fd5b5051600554604080516004808252602480830184526020830180516001600160e01b0316633bef870760e21b178152825494516368db844d60e11b81526001600160a01b038b8116948201948552958616604482018190526000606483018190526080948301948552865160848401528651999a50969097169763d1b7089a978c97909590949093909260a40191808383885b838110156109a757818101518382015260200161098f565b50505050905090810190601f1680156109d45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156109f657600080fd5b505af1158015610a0a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015610a3357600080fd5b815160208301805160405192949293830192919084600160201b821115610a5957600080fd5b908301906020820185811115610a6e57600080fd5b8251600160201b811182820188101715610a8757600080fd5b82525081516020918201929091019080838360005b83811015610ab4578181015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5060408181526005546016546103e8602480860191909152835180860382018152604495860185526020810180516001600160e01b0316632c71fbc360e21b1781526004805496516368db844d60e11b81526001600160a01b039586169181018281529786169881018990526000606482018190526080958201958652845160848301528451969097169d5063d1b7089a9c50909a509198509596509294909260a40191808383885b83811015610ba2578181015183820152602001610b8a565b50505050905090810190601f168015610bcf5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610bf157600080fd5b505af1158015610c05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015610c2e57600080fd5b815160208301805160405192949293830192919084600160201b821115610c5457600080fd5b908301906020820185811115610c6957600080fd5b8251600160201b811182820188101715610c8257600080fd5b82525081516020918201929091019080838360005b83811015610caf578181015183820152602001610c97565b50505050905090810190601f168015610cdc5780820380516001836020036101000a031916815260200191505b5060405250505050506000811115610d8457600554600480546040805163b9a04cdd60e01b81526001600160a01b038781169482019490945230602482015260448101869052918316606483015251919092169163b9a04cdd9160848083019260209291908290030181600087803b158015610d5757600080fd5b505af1158015610d6b573d6000803e3d6000fd5b505050506040513d6020811015610d8157600080fd5b50505b50505b50565b6000610db462015180610da860145442611cc090919063ffffffff16565b9063ffffffff611cd516565b90505b90565b60025460009060ff16610e04576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b610e0d82611643565b8015610e1f5750610e1d82611040565b155b610e70576040805162461bcd60e51b815260206004820152601760248201527f6973206e6f7420616e20696e6163746976652075736572000000000000000000604482015290519081900360640190fd5b6001600160a01b03821660009081526018602052604090205460ff1615610ecf576040805162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b604482015290519081900360640190fd5b6001600160a01b0382166000908152601860205260408120805460ff19166001179055610efc8184611cf7565b600e54909150610f1390600163ffffffff611cc016565b600e55610f233382600080611fc4565b6040805182815290516001600160a01b0385169133917f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749181900360200190a360019150505b919050565b600c5481565b6000610db430611a6e565b600e5481565b60025460ff1681565b6006546001600160a01b031681565b6004546001600160a01b03163314610ffc576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c79204176617461722063616e2063616c6c2074686973206d6574686f64604482015290519081900360640190fd5b6000811161103b5760405162461bcd60e51b815260040180806020018281038252602181526020018061340a6021913960400191505060405180910390fd5b601255565b6001600160a01b0381166000908152600a602052604081205461106283611643565b1561109957600061108062015180610da8428563ffffffff611cc016565b905060105481101561109757600192505050610f69565b505b50600092915050565b60115460ff1681565b600080544210156110fa576040805162461bcd60e51b81526020600482015260146024820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604482015290519081900360640190fd5b60025460ff16611141576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b60065460408051633af32abf60e01b815233600482015290516001600160a01b0390921691633af32abf91602480820192602092909190829003018186803b15801561118c57600080fd5b505afa1580156111a0573d6000803e3d6000fd5b505050506040513d60208110156111b657600080fd5b50516111fe576040805162461bcd60e51b81526020600482015260126024820152711a5cc81b9bdd081dda1a5d195b1a5cdd195960721b604482015290519081900360640190fd5b610db4336122c3565b60015481565b60186020526000908152604090205460ff1681565b6017602052600090815260409020805460019091015460ff9091169082565b600b5481565b61124f6113e2565b61125857600080fd5b806001600160a01b031663223668446040518163ffffffff1660e01b815260040160206040518083038186803b15801561129157600080fd5b505afa1580156112a5573d6000803e3d6000fd5b505050506040513d60208110156112bb57600080fd5b505161130e576040805162461bcd60e51b815260206004820152601a60248201527f4964656e74697479206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6113386113e2565b61134157600080fd5b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b600b5460009081526009602090815260408083206001600160a01b03949094168352929052205460ff1690565b60155481565b6016546001600160a01b031681565b60085481565b6003546001600160a01b031690565b6003546001600160a01b0316331490565b60025460009060ff1661143d576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b61144633611643565b158061146157503360009081526018602052604090205460ff165b156114e757601660009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b457600080fd5b505afa1580156114c8573d6000803e3d6000fd5b505050506040513d60208110156114de57600080fd5b50519050610db7565b61150362015180610da860005442611cc090919063ffffffff16565b600b54141561152b576115153361138b565b61152157600c54611524565b60005b9050610db7565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b15801561157b57600080fd5b505afa15801561158f573d6000803e3d6000fd5b505050506040513d60208110156115a557600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156115f357600080fd5b505afa158015611607573d6000803e3d6000fd5b505050506040513d602081101561161d57600080fd5b5051600e5490915061163690829063ffffffff611cd516565b9250505090565b60135481565b6001600160a01b0381166000908152600a60205260408120548015611099576001915050610f69565b60105481565b60145481565b6116806123e5565b611693426201518063ffffffff611cd516565b620151800261a8c0016000818155601491909155600554601654604080513060248083019190915282518083038201815260449283018452602081018051631619b41160e11b6001600160e01b039091161781526004805495516368db844d60e11b81526001600160a01b03978816918101828152968816958101869052606481018a90526080948101948552835160848201528351979098169863d1b7089a989197939690949093909260a49092019190808383885b8381101561176257818101518382015260200161174a565b50505050905090810190601f16801561178f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156117b157600080fd5b505af11580156117c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156117ee57600080fd5b815160208301805160405192949293830192919084600160201b82111561181457600080fd5b90830190602082018581111561182957600080fd5b8251600160201b81118282018810171561184257600080fd5b82525081516020918201929091019080838360005b8381101561186f578181015183820152602001611857565b50505050905090810190601f16801561189c5780820380516001836020036101000a031916815260200191505b506040525050505050565b600d5481565b60025460009060ff166118f7576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b60005b8251811015611a3457600d545a1015611947576040805182815290517f72b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540f9181900360200190a19050610f69565b61196383828151811061195657fe5b6020026020010151611643565b8015611988575061198683828151811061197957fe5b6020026020010151611040565b155b80156119c857506018600084838151811061199f57fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b15611a2c576119e98382815181106119dc57fe5b6020026020010151610dba565b611a2c576040805162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b604482015290519081900360640190fd5b6001016118fa565b50815160408051918252517f72b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540f9181900360200190a1505190565b6004546000906001600160a01b0316611ac2576040805162461bcd60e51b8152602060048201526011602482015270105d985d185c881a5cc81b9bdd081cd95d607a1b604482015290519081900360640190fd5b6005546004805460408051639be2faed60e01b81526001600160a01b03878116948201949094529183166024830152519190921691639be2faed916044808301926020929190829003018186803b158015611b1c57600080fd5b505afa158015611b30573d6000803e3d6000fd5b505050506040513d6020811015611b4657600080fd5b5051611b5457506000610f69565b506001919050565b60009081526009602052604090206001015490565b60196020526000908152604090205481565b60009081526009602052604090206002015490565b600f5481565b611bba62015180610da860005442611cc090919063ffffffff16565b600b55565b6004546001600160a01b03163314611c1e576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c79204176617461722063616e2063616c6c2074686973206d6574686f64604482015290519081900360640190fd5b6011805460ff1916911515919091179055565b60125481565b60005481565b6004546001600160a01b03163314611c9c576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c79204176617461722063616e2063616c6c2074686973206d6574686f64604482015290519081900360640190fd5b611ca461281c565b565b611cae6113e2565b611cb757600080fd5b610d8781612a44565b600082821115611ccf57600080fd5b50900390565b6000808211611ce357600080fd5b6000828481611cee57fe5b04949350505050565b6000611d01611b9e565b600f54600b5414611fba576000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d6020811015611d8657600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015611dd457600080fd5b505afa158015611de8573d6000803e3d6000fd5b505050506040513d6020811015611dfe57600080fd5b5051601554909150611e0e610d8a565b10611f205760115460ff1615611e2657611e26612ab3565b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b158015611e6c57600080fd5b505afa158015611e80573d6000803e3d6000fd5b505050506040513d6020811015611e9657600080fd5b5051601254909150611eaf90829063ffffffff611cd516565b601355601254601555611eca42610e1063ffffffff611cd516565b610e1002601455600b546012546013546040805193845260208401859052838101929092526060830152517f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9181900360800190a15b600b54600f8190556000908152601760205260409020601154815460ff191660ff909116151517815560018101829055600e5415611f7157600e54601354611f6d9163ffffffff611cd516565b600c555b600b54600c546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a15050505b50600c5492915050565b600b546000908152600960205260409020600180820154611fea9163ffffffff612f4a16565b6001808301919091556001600160a01b038616600090815260208381526040808320805460ff191685179055600a825280832042905560199091529020546120379163ffffffff612f4a16565b50811561211e5760165460408051636bf2228d60e11b81526001600160a01b0388811660048301529151600093929092169163d7e4451a9160248082019260209290919082900301818787803b15801561209057600080fd5b505af11580156120a4573d6000803e3d6000fd5b505050506040513d60208110156120ba57600080fd5b505160028301549091506120d4908263ffffffff612f4a16565b60028301556040805182815290516001600160a01b038816917f89ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304919081900360200190a250610d81565b6002810154612133908563ffffffff612f4a16565b60028201556004805460408051631c2eb17b60e31b815290516000936001600160a01b039093169263e1758bd892808201926020929091829003018186803b15801561217e57600080fd5b505afa158015612192573d6000803e3d6000fd5b505050506040513d60208110156121a857600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0389811660048301526024820189905291519293509083169163a9059cbb916044808201926020929091908290030181600087803b15801561220057600080fd5b505af1158015612214573d6000803e3d6000fd5b505050506040513d602081101561222a57600080fd5b5051612275576040805162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b604482015290519081900360640190fd5b83156122bb576040805186815290516001600160a01b038816917f89ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304919081900360200190a25b505050505050565b6000806122d1600084611cf7565b90506122dc83611643565b801561230157506001600160a01b03831660009081526018602052604090205460ff16155b801561231357506123118361138b565b155b1561233057612326838260016000611fc4565b6001915050610f69565b61233983611643565b158061235d57506001600160a01b03831660009081526018602052604090205460ff165b1561109957600e5461237690600163ffffffff612f4a16565b600e556001600160a01b0383166000908152601860205260408120805460ff191690556123a7908490806001611fc4565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a26001915050610f69565b6123ed612f63565b6123f5613049565b6201518061240e60005442611cc090919063ffffffff16565b8161241557fe5b04600b556004805460408051631c2eb17b60e31b815290516000936001600160a01b039093169263e1758bd892808201926020929091829003018186803b15801561245f57600080fd5b505afa158015612473573d6000803e3d6000fd5b505050506040513d602081101561248957600080fd5b50516007549091501561276e5760048054604080516370a0823160e01b81526001600160a01b039283169381019390935251908316916370a08231916024808301926020929190829003018186803b1580156124e457600080fd5b505afa1580156124f8573d6000803e3d6000fd5b505050506040513d602081101561250e57600080fd5b50516007541115612566576040805162461bcd60e51b815260206004820152601960248201527f4e6f7420656e6f7567682066756e647320746f20737461727400000000000000604482015290519081900360640190fd5b6005546007546040805130602480830191909152604480830194909452825180830385018152606492830184526020810180516001600160e01b031663a9059cbb60e01b1781526004805495516368db844d60e11b81526001600160a01b038a811692820192835296871697810188905260009581018690526080948101948552835160848201528351969098169763d1b7089a978a979496909590949293909260a490920191808383885b8381101561262a578181015183820152602001612612565b50505050905090810190601f1680156126575780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561267957600080fd5b505af115801561268d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156126b657600080fd5b815160208301805160405192949293830192919084600160201b8211156126dc57600080fd5b9083019060208201858111156126f157600080fd5b8251600160201b81118282018810171561270a57600080fd5b82525081516020918201929091019080838360005b8381101561273757818101518382015260200161271f565b50505050905090810190601f1680156127645780820380516001836020036101000a031916815260200191505b5060405250505050505b604080516370a0823160e01b815230600482015290517faaf5e5cfa7e44b7c9cfc845d0cc96adc1c5a4c802d3572523f740424a3ce4fb2916001600160a01b038416916370a0823191602480820192602092909190829003018186803b1580156127d757600080fd5b505afa1580156127eb573d6000803e3d6000fd5b505050506040513d602081101561280157600080fd5b5051604080519182524260208301528051918290030190a150565b60015442101561286a576040805162461bcd60e51b81526020600482015260146024820152731c195c9a5bd9081a185cc81b9bdd08195b99195960621b604482015290519081900360640190fd5b6000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b1580156128ba57600080fd5b505afa1580156128ce573d6000803e3d6000fd5b505050506040513d60208110156128e457600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561293257600080fd5b505afa158015612946573d6000803e3d6000fd5b505050506040513d602081101561295c57600080fd5b505190508015612a3057600480546040805163a9059cbb60e01b81526001600160a01b039283169381019390935260248301849052519084169163a9059cbb9160448083019260209291908290030181600087803b1580156129bd57600080fd5b505af11580156129d1573d6000803e3d6000fd5b505050506040513d60208110156129e757600080fd5b5051612a30576040805162461bcd60e51b8152602060048201526013602482015272195b99081d1c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b612a3861325d565b612a40613316565b5050565b6001600160a01b038116612a5757600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b158015612b0357600080fd5b505afa158015612b17573d6000803e3d6000fd5b505050506040513d6020811015612b2d57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015612b7b57600080fd5b505afa158015612b8f573d6000803e3d6000fd5b505050506040513d6020811015612ba557600080fd5b505160048054604080516370a0823160e01b81526001600160a01b039283169381019390935251929350600092908516916370a08231916024808301926020929190829003018186803b158015612bfb57600080fd5b505afa158015612c0f573d6000803e3d6000fd5b505050506040513d6020811015612c2557600080fd5b505160055460408051306024808301919091526044808301869052835180840382018152606493840185526020810180516001600160e01b031663a9059cbb60e01b1781526004805496516368db844d60e11b81526001600160a01b038d811692820192835297881694810185905260009681018790526080958101958652835160848201528351999a50969097169763d1b7089a978c97939694959093909260a490910191808383885b83811015612ce8578181015183820152602001612cd0565b50505050905090810190601f168015612d155780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015612d3757600080fd5b505af1158015612d4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015612d7457600080fd5b815160208301805160405192949293830192919084600160201b821115612d9a57600080fd5b908301906020820185811115612daf57600080fd5b8251600160201b811182820188101715612dc857600080fd5b82525081516020918201929091019080838360005b83811015612df5578181015183820152602001612ddd565b50505050905090810190601f168015612e225780820380516001836020036101000a031916815260200191505b5060405250505050506000612e408284612f4a90919063ffffffff16565b604080516370a0823160e01b815230600482015290519192506001600160a01b038616916370a0823191602480820192602092909190829003018186803b158015612e8a57600080fd5b505afa158015612e9e573d6000803e3d6000fd5b505050506040513d6020811015612eb457600080fd5b50518114612f09576040805162461bcd60e51b815260206004820152601760248201527f44414f207472616e7366657220686173206661696c6564000000000000000000604482015290519081900360640190fd5b604080518481526020810183905281517f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba929181900390910190a150505050565b600082820183811015612f5c57600080fd5b9392505050565b6000544210158015612f76575060015442105b612fb7576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081a5b881c195c9a5bd9609a1b604482015290519081900360640190fd5b60025460ff1615613004576040805162461bcd60e51b815260206004820152601260248201527163616e6e6f7420737461727420747769636560701b604482015290519081900360640190fd5b6002805460ff1916600117905560408051428152905133917f727dd98701807c5fdf715b9f1fd7d87461a558e2ab3e05935add76e42e330fa3919081900360200190a2565b6005546006546040805130602480830191909152825180830382018152604492830184526020810180516001600160e01b0316635f539d6960e01b1781526004805495516368db844d60e11b81526001600160a01b039788169181018281529688169581018690526000606482018190526080958201958652845160848301528451989099169863d1b7089a989297949695909493909260a490920191808383885b838110156131035781810151838201526020016130eb565b50505050905090810190601f1680156131305780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561315257600080fd5b505af1158015613166573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561318f57600080fd5b815160208301805160405192949293830192919084600160201b8211156131b557600080fd5b9083019060208201858111156131ca57600080fd5b8251600160201b8111828201881017156131e357600080fd5b82525081516020918201929091019080838360005b838110156132105781810151838201526020016131f8565b50505050905090810190601f16801561323d5780820380516001836020036101000a031916815260200191505b506040525050600454611ca493506001600160a01b03169150611ca69050565b6005546006546040805130602480830191909152825180830382018152604492830184526020810180516001600160e01b031663c375c2ef60e01b1781526004805495516368db844d60e11b81526001600160a01b039788169181018281529688169581018690526000606482018190526080958201958652845160848301528451989099169863d1b7089a989297949695909493909260a490920191808383888381101561176257818101518382015260200161174a565b600154421015613364576040805162461bcd60e51b81526020600482015260146024820152731c195c9a5bd9081a185cc81b9bdd08195b99195960621b604482015290519081900360640190fd5b600254611ca4906001600160a01b036101008204169060ff166133be576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b6002805460ff1916905560408051428152905133917ef689ee9beb942c1c9c0d6642687ace05a9000d5f2979d344163c57829fa779919081900360200190a2806001600160a01b0316fffe6379636c65206d757374206265206174206c65617374203120646179206c6f6e67a265627a7a723158209f16a329e23ee659f6f63a48ad1f15c147d3be4aadc049ef735ca78930f8a9c464736f6c6343000510003273746172742063616e6e6f74206265206166746572206e6f7220657175616c20746f20656e64",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061028a5760003560e01c80638081cbbd1161015c578063c1337508116100ce578063dddc361611610087578063dddc36161461067e578063de1de3a014610686578063eac471a0146106a5578063eda4e6d6146106ad578063efbe1c1c146106b5578063f2fde38b146106bd5761028a565b8063c13375081461054f578063c3c5a547146105f0578063c7a76adf14610616578063cc054dfc14610633578063cef6360014610659578063d7c4cbb8146106765761028a565b80639dc2c033116101205780639dc2c03314610501578063a21f698a14610509578063b656223d1461052f578063ba07541014610537578063be9a65551461053f578063c033abf2146105475761028a565b80638081cbbd146104d9578063884a41be146104e15780638da5cb5b146104e95780638f32d59b146104f157806398d6621b146104f95761028a565b80633d84ceca11610200578063560796d1116101b9578063560796d11461043d5780635c9302c9146104755780635d5bf1781461047d578063715018a6146104a357806373b2e80e146104ab578063741470ac146104d15761028a565b80633d84ceca146103bc5780634202d214146103d9578063456ac1c2146103ff5780634e71d92d14610407578063506ec0951461040f5780635231e2f0146104175761028a565b80631bbc644c116102525780631bbc644c1461033e5780631d8f5ea914610378578063223668441461038057806322b457271461038857806322f3e2d4146103905780632c159a1a146103985761028a565b8063013eba921461028f578063069786ea146102c7578063086cfca8146102e85780630900f010146103105780630ce82d6714610336575b600080fd5b6102b5600480360360208110156102a557600080fd5b50356001600160a01b03166106e3565b60408051918252519081900360200190f35b6102cf6106f5565b6040805192835260208301919091528051918290030190f35b61030e600480360360208110156102fe57600080fd5b50356001600160a01b0316610738565b005b61030e6004803603602081101561032657600080fd5b50356001600160a01b03166107ef565b6102b5610d8a565b6103646004803603602081101561035457600080fd5b50356001600160a01b0316610dba565b604080519115158252519081900360200190f35b6102b5610f6e565b610364610f74565b6102b5610f7f565b610364610f85565b6103a0610f8e565b604080516001600160a01b039092168252519081900360200190f35b61030e600480360360208110156103d257600080fd5b5035610f9d565b610364600480360360208110156103ef57600080fd5b50356001600160a01b0316611040565b6103646110a2565b6103646110ab565b6102b5611207565b6103646004803603602081101561042d57600080fd5b50356001600160a01b031661120d565b61045a6004803603602081101561045357600080fd5b5035611222565b60408051921515835260208301919091528051918290030190f35b6102b5611241565b61030e6004803603602081101561049357600080fd5b50356001600160a01b0316611247565b61030e611330565b610364600480360360208110156104c157600080fd5b50356001600160a01b031661138b565b6102b56113b8565b6103a06113be565b6102b56113cd565b6103a06113d3565b6103646113e2565b6102b56113f3565b6102b561163d565b6103646004803603602081101561051f57600080fd5b50356001600160a01b0316611643565b6102b561166c565b6102b5611672565b61030e611678565b6102b56118a7565b6102b56004803603602081101561056557600080fd5b810190602081018135600160201b81111561057f57600080fd5b82018360208201111561059157600080fd5b803590602001918460208302840111600160201b831117156105b257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506118ad945050505050565b6103646004803603602081101561060657600080fd5b50356001600160a01b0316611a6e565b6102b56004803603602081101561062c57600080fd5b5035611b5c565b6102b56004803603602081101561064957600080fd5b50356001600160a01b0316611b71565b6102b56004803603602081101561066f57600080fd5b5035611b83565b6102b5611b98565b61030e611b9e565b61030e6004803603602081101561069c57600080fd5b50351515611bbf565b6102b5611c31565b6102b5611c37565b61030e611c3d565b61030e600480360360208110156106d357600080fd5b50356001600160a01b0316611ca6565b600a6020526000908152604090205481565b60008060006201518061071360005442611cc090919063ffffffff16565b8161071a57fe5b04905061072681611b5c565b61072f82611b83565b92509250509091565b6107406113e2565b61074957600080fd5b600480546001600160a01b0319166001600160a01b038381169190911780835560408051638da5cb5b60e01b815290519190921692638da5cb5b92808201926020929091829003018186803b1580156107a157600080fd5b505afa1580156107b5573d6000803e3d6000fd5b505050506040513d60208110156107cb57600080fd5b5051600580546001600160a01b0319166001600160a01b0390921691909117905550565b6107f7611678565b6001600160a01b03811615610d87576000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b15801561085657600080fd5b505afa15801561086a573d6000803e3d6000fd5b505050506040513d602081101561088057600080fd5b5051604080516370a0823160e01b81526001600160a01b0385811660048301529151929350600092918416916370a0823191602480820192602092909190829003018186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d60208110156108fc57600080fd5b5051600554604080516004808252602480830184526020830180516001600160e01b0316633bef870760e21b178152825494516368db844d60e11b81526001600160a01b038b8116948201948552958616604482018190526000606483018190526080948301948552865160848401528651999a50969097169763d1b7089a978c97909590949093909260a40191808383885b838110156109a757818101518382015260200161098f565b50505050905090810190601f1680156109d45780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156109f657600080fd5b505af1158015610a0a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015610a3357600080fd5b815160208301805160405192949293830192919084600160201b821115610a5957600080fd5b908301906020820185811115610a6e57600080fd5b8251600160201b811182820188101715610a8757600080fd5b82525081516020918201929091019080838360005b83811015610ab4578181015183820152602001610a9c565b50505050905090810190601f168015610ae15780820380516001836020036101000a031916815260200191505b5060408181526005546016546103e8602480860191909152835180860382018152604495860185526020810180516001600160e01b0316632c71fbc360e21b1781526004805496516368db844d60e11b81526001600160a01b039586169181018281529786169881018990526000606482018190526080958201958652845160848301528451969097169d5063d1b7089a9c50909a509198509596509294909260a40191808383885b83811015610ba2578181015183820152602001610b8a565b50505050905090810190601f168015610bcf5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610bf157600080fd5b505af1158015610c05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015610c2e57600080fd5b815160208301805160405192949293830192919084600160201b821115610c5457600080fd5b908301906020820185811115610c6957600080fd5b8251600160201b811182820188101715610c8257600080fd5b82525081516020918201929091019080838360005b83811015610caf578181015183820152602001610c97565b50505050905090810190601f168015610cdc5780820380516001836020036101000a031916815260200191505b5060405250505050506000811115610d8457600554600480546040805163b9a04cdd60e01b81526001600160a01b038781169482019490945230602482015260448101869052918316606483015251919092169163b9a04cdd9160848083019260209291908290030181600087803b158015610d5757600080fd5b505af1158015610d6b573d6000803e3d6000fd5b505050506040513d6020811015610d8157600080fd5b50505b50505b50565b6000610db462015180610da860145442611cc090919063ffffffff16565b9063ffffffff611cd516565b90505b90565b60025460009060ff16610e04576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b610e0d82611643565b8015610e1f5750610e1d82611040565b155b610e70576040805162461bcd60e51b815260206004820152601760248201527f6973206e6f7420616e20696e6163746976652075736572000000000000000000604482015290519081900360640190fd5b6001600160a01b03821660009081526018602052604090205460ff1615610ecf576040805162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b604482015290519081900360640190fd5b6001600160a01b0382166000908152601860205260408120805460ff19166001179055610efc8184611cf7565b600e54909150610f1390600163ffffffff611cc016565b600e55610f233382600080611fc4565b6040805182815290516001600160a01b0385169133917f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749181900360200190a360019150505b919050565b600c5481565b6000610db430611a6e565b600e5481565b60025460ff1681565b6006546001600160a01b031681565b6004546001600160a01b03163314610ffc576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c79204176617461722063616e2063616c6c2074686973206d6574686f64604482015290519081900360640190fd5b6000811161103b5760405162461bcd60e51b815260040180806020018281038252602181526020018061340a6021913960400191505060405180910390fd5b601255565b6001600160a01b0381166000908152600a602052604081205461106283611643565b1561109957600061108062015180610da8428563ffffffff611cc016565b905060105481101561109757600192505050610f69565b505b50600092915050565b60115460ff1681565b600080544210156110fa576040805162461bcd60e51b81526020600482015260146024820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604482015290519081900360640190fd5b60025460ff16611141576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b60065460408051633af32abf60e01b815233600482015290516001600160a01b0390921691633af32abf91602480820192602092909190829003018186803b15801561118c57600080fd5b505afa1580156111a0573d6000803e3d6000fd5b505050506040513d60208110156111b657600080fd5b50516111fe576040805162461bcd60e51b81526020600482015260126024820152711a5cc81b9bdd081dda1a5d195b1a5cdd195960721b604482015290519081900360640190fd5b610db4336122c3565b60015481565b60186020526000908152604090205460ff1681565b6017602052600090815260409020805460019091015460ff9091169082565b600b5481565b61124f6113e2565b61125857600080fd5b806001600160a01b031663223668446040518163ffffffff1660e01b815260040160206040518083038186803b15801561129157600080fd5b505afa1580156112a5573d6000803e3d6000fd5b505050506040513d60208110156112bb57600080fd5b505161130e576040805162461bcd60e51b815260206004820152601a60248201527f4964656e74697479206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6113386113e2565b61134157600080fd5b6003546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600380546001600160a01b0319169055565b600b5460009081526009602090815260408083206001600160a01b03949094168352929052205460ff1690565b60155481565b6016546001600160a01b031681565b60085481565b6003546001600160a01b031690565b6003546001600160a01b0316331490565b60025460009060ff1661143d576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b61144633611643565b158061146157503360009081526018602052604090205460ff165b156114e757601660009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114b457600080fd5b505afa1580156114c8573d6000803e3d6000fd5b505050506040513d60208110156114de57600080fd5b50519050610db7565b61150362015180610da860005442611cc090919063ffffffff16565b600b54141561152b576115153361138b565b61152157600c54611524565b60005b9050610db7565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b15801561157b57600080fd5b505afa15801561158f573d6000803e3d6000fd5b505050506040513d60208110156115a557600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156115f357600080fd5b505afa158015611607573d6000803e3d6000fd5b505050506040513d602081101561161d57600080fd5b5051600e5490915061163690829063ffffffff611cd516565b9250505090565b60135481565b6001600160a01b0381166000908152600a60205260408120548015611099576001915050610f69565b60105481565b60145481565b6116806123e5565b611693426201518063ffffffff611cd516565b620151800261a8c0016000818155601491909155600554601654604080513060248083019190915282518083038201815260449283018452602081018051631619b41160e11b6001600160e01b039091161781526004805495516368db844d60e11b81526001600160a01b03978816918101828152968816958101869052606481018a90526080948101948552835160848201528351979098169863d1b7089a989197939690949093909260a49092019190808383885b8381101561176257818101518382015260200161174a565b50505050905090810190601f16801561178f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156117b157600080fd5b505af11580156117c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156117ee57600080fd5b815160208301805160405192949293830192919084600160201b82111561181457600080fd5b90830190602082018581111561182957600080fd5b8251600160201b81118282018810171561184257600080fd5b82525081516020918201929091019080838360005b8381101561186f578181015183820152602001611857565b50505050905090810190601f16801561189c5780820380516001836020036101000a031916815260200191505b506040525050505050565b600d5481565b60025460009060ff166118f7576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b60005b8251811015611a3457600d545a1015611947576040805182815290517f72b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540f9181900360200190a19050610f69565b61196383828151811061195657fe5b6020026020010151611643565b8015611988575061198683828151811061197957fe5b6020026020010151611040565b155b80156119c857506018600084838151811061199f57fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b15611a2c576119e98382815181106119dc57fe5b6020026020010151610dba565b611a2c576040805162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b604482015290519081900360640190fd5b6001016118fa565b50815160408051918252517f72b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540f9181900360200190a1505190565b6004546000906001600160a01b0316611ac2576040805162461bcd60e51b8152602060048201526011602482015270105d985d185c881a5cc81b9bdd081cd95d607a1b604482015290519081900360640190fd5b6005546004805460408051639be2faed60e01b81526001600160a01b03878116948201949094529183166024830152519190921691639be2faed916044808301926020929190829003018186803b158015611b1c57600080fd5b505afa158015611b30573d6000803e3d6000fd5b505050506040513d6020811015611b4657600080fd5b5051611b5457506000610f69565b506001919050565b60009081526009602052604090206001015490565b60196020526000908152604090205481565b60009081526009602052604090206002015490565b600f5481565b611bba62015180610da860005442611cc090919063ffffffff16565b600b55565b6004546001600160a01b03163314611c1e576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c79204176617461722063616e2063616c6c2074686973206d6574686f64604482015290519081900360640190fd5b6011805460ff1916911515919091179055565b60125481565b60005481565b6004546001600160a01b03163314611c9c576040805162461bcd60e51b815260206004820181905260248201527f6f6e6c79204176617461722063616e2063616c6c2074686973206d6574686f64604482015290519081900360640190fd5b611ca461281c565b565b611cae6113e2565b611cb757600080fd5b610d8781612a44565b600082821115611ccf57600080fd5b50900390565b6000808211611ce357600080fd5b6000828481611cee57fe5b04949350505050565b6000611d01611b9e565b600f54600b5414611fba576000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d6020811015611d8657600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015611dd457600080fd5b505afa158015611de8573d6000803e3d6000fd5b505050506040513d6020811015611dfe57600080fd5b5051601554909150611e0e610d8a565b10611f205760115460ff1615611e2657611e26612ab3565b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b158015611e6c57600080fd5b505afa158015611e80573d6000803e3d6000fd5b505050506040513d6020811015611e9657600080fd5b5051601254909150611eaf90829063ffffffff611cd516565b601355601254601555611eca42610e1063ffffffff611cd516565b610e1002601455600b546012546013546040805193845260208401859052838101929092526060830152517f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9181900360800190a15b600b54600f8190556000908152601760205260409020601154815460ff191660ff909116151517815560018101829055600e5415611f7157600e54601354611f6d9163ffffffff611cd516565b600c555b600b54600c546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a15050505b50600c5492915050565b600b546000908152600960205260409020600180820154611fea9163ffffffff612f4a16565b6001808301919091556001600160a01b038616600090815260208381526040808320805460ff191685179055600a825280832042905560199091529020546120379163ffffffff612f4a16565b50811561211e5760165460408051636bf2228d60e11b81526001600160a01b0388811660048301529151600093929092169163d7e4451a9160248082019260209290919082900301818787803b15801561209057600080fd5b505af11580156120a4573d6000803e3d6000fd5b505050506040513d60208110156120ba57600080fd5b505160028301549091506120d4908263ffffffff612f4a16565b60028301556040805182815290516001600160a01b038816917f89ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304919081900360200190a250610d81565b6002810154612133908563ffffffff612f4a16565b60028201556004805460408051631c2eb17b60e31b815290516000936001600160a01b039093169263e1758bd892808201926020929091829003018186803b15801561217e57600080fd5b505afa158015612192573d6000803e3d6000fd5b505050506040513d60208110156121a857600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0389811660048301526024820189905291519293509083169163a9059cbb916044808201926020929091908290030181600087803b15801561220057600080fd5b505af1158015612214573d6000803e3d6000fd5b505050506040513d602081101561222a57600080fd5b5051612275576040805162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b604482015290519081900360640190fd5b83156122bb576040805186815290516001600160a01b038816917f89ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304919081900360200190a25b505050505050565b6000806122d1600084611cf7565b90506122dc83611643565b801561230157506001600160a01b03831660009081526018602052604090205460ff16155b801561231357506123118361138b565b155b1561233057612326838260016000611fc4565b6001915050610f69565b61233983611643565b158061235d57506001600160a01b03831660009081526018602052604090205460ff165b1561109957600e5461237690600163ffffffff612f4a16565b600e556001600160a01b0383166000908152601860205260408120805460ff191690556123a7908490806001611fc4565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a26001915050610f69565b6123ed612f63565b6123f5613049565b6201518061240e60005442611cc090919063ffffffff16565b8161241557fe5b04600b556004805460408051631c2eb17b60e31b815290516000936001600160a01b039093169263e1758bd892808201926020929091829003018186803b15801561245f57600080fd5b505afa158015612473573d6000803e3d6000fd5b505050506040513d602081101561248957600080fd5b50516007549091501561276e5760048054604080516370a0823160e01b81526001600160a01b039283169381019390935251908316916370a08231916024808301926020929190829003018186803b1580156124e457600080fd5b505afa1580156124f8573d6000803e3d6000fd5b505050506040513d602081101561250e57600080fd5b50516007541115612566576040805162461bcd60e51b815260206004820152601960248201527f4e6f7420656e6f7567682066756e647320746f20737461727400000000000000604482015290519081900360640190fd5b6005546007546040805130602480830191909152604480830194909452825180830385018152606492830184526020810180516001600160e01b031663a9059cbb60e01b1781526004805495516368db844d60e11b81526001600160a01b038a811692820192835296871697810188905260009581018690526080948101948552835160848201528351969098169763d1b7089a978a979496909590949293909260a490920191808383885b8381101561262a578181015183820152602001612612565b50505050905090810190601f1680156126575780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561267957600080fd5b505af115801561268d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160409081528110156126b657600080fd5b815160208301805160405192949293830192919084600160201b8211156126dc57600080fd5b9083019060208201858111156126f157600080fd5b8251600160201b81118282018810171561270a57600080fd5b82525081516020918201929091019080838360005b8381101561273757818101518382015260200161271f565b50505050905090810190601f1680156127645780820380516001836020036101000a031916815260200191505b5060405250505050505b604080516370a0823160e01b815230600482015290517faaf5e5cfa7e44b7c9cfc845d0cc96adc1c5a4c802d3572523f740424a3ce4fb2916001600160a01b038416916370a0823191602480820192602092909190829003018186803b1580156127d757600080fd5b505afa1580156127eb573d6000803e3d6000fd5b505050506040513d602081101561280157600080fd5b5051604080519182524260208301528051918290030190a150565b60015442101561286a576040805162461bcd60e51b81526020600482015260146024820152731c195c9a5bd9081a185cc81b9bdd08195b99195960621b604482015290519081900360640190fd5b6000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b1580156128ba57600080fd5b505afa1580156128ce573d6000803e3d6000fd5b505050506040513d60208110156128e457600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561293257600080fd5b505afa158015612946573d6000803e3d6000fd5b505050506040513d602081101561295c57600080fd5b505190508015612a3057600480546040805163a9059cbb60e01b81526001600160a01b039283169381019390935260248301849052519084169163a9059cbb9160448083019260209291908290030181600087803b1580156129bd57600080fd5b505af11580156129d1573d6000803e3d6000fd5b505050506040513d60208110156129e757600080fd5b5051612a30576040805162461bcd60e51b8152602060048201526013602482015272195b99081d1c985b9cd9995c8819985a5b1959606a1b604482015290519081900360640190fd5b612a3861325d565b612a40613316565b5050565b6001600160a01b038116612a5757600080fd5b6003546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663e1758bd86040518163ffffffff1660e01b815260040160206040518083038186803b158015612b0357600080fd5b505afa158015612b17573d6000803e3d6000fd5b505050506040513d6020811015612b2d57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038416916370a08231916024808301926020929190829003018186803b158015612b7b57600080fd5b505afa158015612b8f573d6000803e3d6000fd5b505050506040513d6020811015612ba557600080fd5b505160048054604080516370a0823160e01b81526001600160a01b039283169381019390935251929350600092908516916370a08231916024808301926020929190829003018186803b158015612bfb57600080fd5b505afa158015612c0f573d6000803e3d6000fd5b505050506040513d6020811015612c2557600080fd5b505160055460408051306024808301919091526044808301869052835180840382018152606493840185526020810180516001600160e01b031663a9059cbb60e01b1781526004805496516368db844d60e11b81526001600160a01b038d811692820192835297881694810185905260009681018790526080958101958652835160848201528351999a50969097169763d1b7089a978c97939694959093909260a490910191808383885b83811015612ce8578181015183820152602001612cd0565b50505050905090810190601f168015612d155780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015612d3757600080fd5b505af1158015612d4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015612d7457600080fd5b815160208301805160405192949293830192919084600160201b821115612d9a57600080fd5b908301906020820185811115612daf57600080fd5b8251600160201b811182820188101715612dc857600080fd5b82525081516020918201929091019080838360005b83811015612df5578181015183820152602001612ddd565b50505050905090810190601f168015612e225780820380516001836020036101000a031916815260200191505b5060405250505050506000612e408284612f4a90919063ffffffff16565b604080516370a0823160e01b815230600482015290519192506001600160a01b038616916370a0823191602480820192602092909190829003018186803b158015612e8a57600080fd5b505afa158015612e9e573d6000803e3d6000fd5b505050506040513d6020811015612eb457600080fd5b50518114612f09576040805162461bcd60e51b815260206004820152601760248201527f44414f207472616e7366657220686173206661696c6564000000000000000000604482015290519081900360640190fd5b604080518481526020810183905281517f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba929181900390910190a150505050565b600082820183811015612f5c57600080fd5b9392505050565b6000544210158015612f76575060015442105b612fb7576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd081a5b881c195c9a5bd9609a1b604482015290519081900360640190fd5b60025460ff1615613004576040805162461bcd60e51b815260206004820152601260248201527163616e6e6f7420737461727420747769636560701b604482015290519081900360640190fd5b6002805460ff1916600117905560408051428152905133917f727dd98701807c5fdf715b9f1fd7d87461a558e2ab3e05935add76e42e330fa3919081900360200190a2565b6005546006546040805130602480830191909152825180830382018152604492830184526020810180516001600160e01b0316635f539d6960e01b1781526004805495516368db844d60e11b81526001600160a01b039788169181018281529688169581018690526000606482018190526080958201958652845160848301528451989099169863d1b7089a989297949695909493909260a490920191808383885b838110156131035781810151838201526020016130eb565b50505050905090810190601f1680156131305780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561315257600080fd5b505af1158015613166573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561318f57600080fd5b815160208301805160405192949293830192919084600160201b8211156131b557600080fd5b9083019060208201858111156131ca57600080fd5b8251600160201b8111828201881017156131e357600080fd5b82525081516020918201929091019080838360005b838110156132105781810151838201526020016131f8565b50505050905090810190601f16801561323d5780820380516001836020036101000a031916815260200191505b506040525050600454611ca493506001600160a01b03169150611ca69050565b6005546006546040805130602480830191909152825180830382018152604492830184526020810180516001600160e01b031663c375c2ef60e01b1781526004805495516368db844d60e11b81526001600160a01b039788169181018281529688169581018690526000606482018190526080958201958652845160848301528451989099169863d1b7089a989297949695909493909260a490920191808383888381101561176257818101518382015260200161174a565b600154421015613364576040805162461bcd60e51b81526020600482015260146024820152731c195c9a5bd9081a185cc81b9bdd08195b99195960621b604482015290519081900360640190fd5b600254611ca4906001600160a01b036101008204169060ff166133be576040805162461bcd60e51b815260206004820152600d60248201526c6973206e6f742061637469766560981b604482015290519081900360640190fd5b6002805460ff1916905560408051428152905133917ef689ee9beb942c1c9c0d6642687ace05a9000d5f2979d344163c57829fa779919081900360200190a2806001600160a01b0316fffe6379636c65206d757374206265206174206c65617374203120646179206c6f6e67a265627a7a723158209f16a329e23ee659f6f63a48ad1f15c147d3be4aadc049ef735ca78930f8a9c464736f6c63430005100032",
  "sourceMap": "165:1298:48:-;;;443:64:7;;;-1:-1:-1;;;;;;443:64:7;;;478:6:30;443:41;;258:502:48;5:2:-1;;;;30:1;27;20:12;5:2;258:502:48;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;258:502:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3744:1:30;258:502:48;;;;;;;;;1629:25:2;;;1621:76;;;;-1:-1:-1;;;1621:76:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1708:11;:26;;;1744:9;:22;;;;1776:6;:16;;-1:-1:-1;;;;;;1776:16:2;;-1:-1:-1;;;;;1776:16:2;;;;;-1:-1:-1;;1803:16:2;;;515:6:77;:19;;524:10;-1:-1:-1;;;;;;515:19:77;;;;;;;;549:40;;582:6;;;1708:11:2;549:40:77;;1708:11:2;;549:40:77;688:6:7;:16;;-1:-1:-1;;;;;;688:16:7;-1:-1:-1;;;;;688:16:7;;;;;;;;;;;719:6;:19;715:98;;787:6;;;:14;;;-1:-1:-1;;;787:14:7;;;;-1:-1:-1;;;;;787:6:7;;;;:12;;:14;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;787:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;787:14:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;787:14:7;754:10;:48;;-1:-1:-1;;;;;;754:48:7;-1:-1:-1;;;;;754:48:7;;;;;;;;;715:98;-1:-1:-1;;;;;;483:24:11;;475:62;;;;;-1:-1:-1;;;475:62:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;547:8;:20;;-1:-1:-1;;;;;547:20:11;;;-1:-1:-1;;;;;;547:20:11;;;;;;;;;-1:-1:-1;;;1640:14:8;:32;;;;-1:-1:-1;;;3785:20:30;3777:65;;;;;-1:-1:-1;;;3777:65:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3847:15;:34;;;;3885:14;:32;;-1:-1:-1;;;;;3885:32:30;;;-1:-1:-1;;;;;;3885:32:30;;;;;;;;;;-1:-1:-1;;3921:21:30;:29;;3954:11;:26;;;;-1:-1:-1;;3921:29:30;;;3885:32;725:28:48;;;-1:-1:-1;;;;;;;;;165:1298:48;;;;;;",
  "deployedSourceMap": "165:1298:48:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;165:1298:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;774:46:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;774:46:8;-1:-1:-1;;;;;774:46:8;;:::i;:::-;;;;;;;;;;;;;;;;2935:205;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1698:143:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1698:143:7;-1:-1:-1;;;;;1698:143:7;;:::i;:::-;;15015:663:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15015:663:30;-1:-1:-1;;;;;15015:663:30;;:::i;5043:107::-;;;:::i;12623:873::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12623:873:30;-1:-1:-1;;;;;12623:873:30;;:::i;:::-;;;;;;;;;;;;;;;;;;363:23;;;:::i;1987:102:7:-;;;:::i;615:31:30:-;;;:::i;274:20:2:-;;;:::i;278:24:11:-;;;:::i;:::-;;;;-1:-1:-1;;;;;278:24:11;;;;;;;;;;;;;;4812:158:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4812:158:30;;:::i;7713:324::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7713:324:30;-1:-1:-1;;;;;7713:324:30;;:::i;1030:33::-;;;:::i;11928:128::-;;;:::i;243:24:2:-;;;:::i;2077:52:30:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2077:52:30;-1:-1:-1;;;;;2077:52:30;;:::i;1959:48::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1959:48:30;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;827:25:8;;;:::i;2735:168:11:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2735:168:11;-1:-1:-1;;;;;2735:168:11;;:::i;1347:137:77:-;;;:::i;6790:119:30:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6790:119:30;-1:-1:-1;;;;;6790:119:30;;:::i;1443:33::-;;;:::i;1655:36::-;;;:::i;564:32:8:-;;;:::i;659:77:77:-;;;:::i;979:90::-;;;:::i;9595:649:30:-;;;:::i;1255:29::-;;;:::i;7085:214::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7085:214:30;-1:-1:-1;;;;;7085:214:30;;:::i;924:30::-;;;:::i;1324:27::-;;;:::i;14396:315::-;;;:::i;443:41::-;;;:::i;13735:482::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13735:482:30;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;13735:482:30;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13735:482:30;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;13735:482:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;13735:482:30;;-1:-1:-1;13735:482:30;;-1:-1:-1;;;;;13735:482:30:i;2235:262:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2235:262:7;-1:-1:-1;;;;;2235:262:7;;:::i;2273:122:8:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2273:122:8;;:::i;2164:53:30:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2164:53:30;-1:-1:-1;;;;;2164:53:30;;:::i;2655:116:8:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2655:116:8;;:::i;786:30:30:-;;;:::i;6553:80::-;;;:::i;14836:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14836:121:30;;;;:::i;1140:26::-;;;:::i;211::2:-;;;:::i;14960:52:30:-;;;:::i;1655:107:77:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1655:107:77;-1:-1:-1;;;;;1655:107:77;;:::i;774:46:8:-;;;;;;;;;;;;;:::o;2935:205::-;2981:13;2996:14;3022:13;3063:6;3039:20;3047:11;;3039:3;:7;;:20;;;;:::i;:::-;3038:31;;;;;;3022:47;;3087:22;3103:5;3087:15;:22::i;:::-;3111:21;3126:5;3111:14;:21::i;:::-;3079:54;;;;;2935:205;;:::o;1698:143:7:-;863:9:77;:7;:9::i;:::-;855:18;;;;;;1760:6:7;:16;;-1:-1:-1;;;;;;1760:16:7;-1:-1:-1;;;;;1760:16:7;;;;;;;;;;1819:14;;;-1:-1:-1;;;1819:14:7;;;;:6;;;;;:12;;:14;;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;1819:14:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1819:14:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1819:14:7;1786:10;:48;;-1:-1:-1;;;;;;1786:48:7;-1:-1:-1;;;;;1786:48:7;;;;;;;;;-1:-1:-1;1698:143:7:o;15015:663:30:-;15081:7;:5;:7::i;:::-;-1:-1:-1;;;;;15097:27:30;;;15093:582;;15131:13;15166:6;;;;;;;;;-1:-1:-1;;;;;15166:6:30;-1:-1:-1;;;;;15166:18:30;;:20;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15166:20:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15166:20:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15166:20:30;15215:27;;;-1:-1:-1;;;15215:27:30;;-1:-1:-1;;;;;15215:27:30;;;;;;;;;15166:20;;-1:-1:-1;15194:18:30;;15215:12;;;;;;:27;;;;;15166:20;;15215:27;;;;;;;;:12;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;15215:27:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15215:27:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15215:27:30;15290:10;;15337:32;;;22::-1;6:49;;;15337:32:30;;;;;;15215:27;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;15375:6:30;;15290:103;;-1:-1:-1;;;15290:103:30;;-1:-1:-1;;;;;15290:103:30;;;;;;;;;15375:6;;;15290:103;;;;;;:10;:103;;;;;;;;;;;;;;;;;;;;;15215:27;;-1:-1:-1;15290:10:30;;;;;:22;;15318:13;;15375:6;;15290:10;;:103;;;;;;;;;25:18:-1;15290:10:30;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15290:103:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15290:103:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15290:103:30;;;;;;39:16:-1;36:1;17:17;2:54;101:4;15290:103:30;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;15290:103:30;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;15290:103:30;;420:4:-1;411:14;;;;15290:103:30;;;;;411:14:-1;15290:103:30;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15290:103:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15290:103:30;;;;15399:10;;15435:14;;15507:4;15456:56;;;;;;;;;;26:21:-1;;;22:32;;6:49;;15456:56:30;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;15518:6:30;;;15399:137;;-1:-1:-1;;;15399:137:30;;-1:-1:-1;;;;;15435:14:30;;;15399:137;;;;;;15518:6;;;15399:137;;;;;;:10;:137;;;;;;;;;;;;;;;;;;;;;:10;;;;;-1:-1:-1;15399:22:30;;-1:-1:-1;15435:14:30;;-1:-1:-1;15456:56:30;;-1:-1:-1;15518:6:30;;-1:-1:-1;15399:10:30;;:137;;;;;;;25:18:-1;15399:10:30;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15399:137:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15399:137:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15399:137:30;;;;;;39:16:-1;36:1;17:17;2:54;101:4;15399:137:30;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;15399:137:30;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;15399:137:30;;420:4:-1;411:14;;;;15399:137:30;;;;;411:14:-1;15399:137:30;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15399:137:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15559:1;15546:10;:14;15542:129;;;15568:10;;15653:6;;;15568:97;;;-1:-1:-1;;;15568:97:30;;-1:-1:-1;;;;;15568:97:30;;;;;;;;;;15624:4;15568:97;;;;;;;;;;15653:6;;;15568:97;;;;;:10;;;;;:32;;:97;;;;;;;;;;;;;;:10;;:97;;;5:2:-1;;;;30:1;27;20:12;5:2;15568:97:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15568:97:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;15542:129:30;15093:582;;;15015:663;:::o;5043:107::-;5093:7;5113:33;5139:6;5113:21;5121:12;;5113:3;:7;;:21;;;;:::i;:::-;:25;:33;:25;:33;:::i;:::-;5106:40;;5043:107;;:::o;12623:873::-;544:8:2;;12685:4:30;;544:8:2;;536:34;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;;;;12844:22:30;12857:8;12844:12;:22::i;:::-;:49;;;;;12871:22;12884:8;12871:12;:22::i;:::-;12870:23;12844:49;12832:95;;;;;-1:-1:-1;;;12832:95:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12940:30:30;;;;;;:20;:30;;;;;;;;12939:31;12931:58;;;;;-1:-1:-1;;;12931:58:30;;;;;;;;;;;;-1:-1:-1;;;12931:58:30;;;;;;;;;;;;;;;-1:-1:-1;;;;;12993:30:30;;;;;;:20;:30;;;;;:37;;-1:-1:-1;;12993:37:30;13026:4;12993:37;;;13271:32;12993:30;13014:8;13271:19;:32::i;:::-;13326:16;;13245:58;;-1:-1:-1;13326:23:30;;13347:1;13326:23;:20;:23;:::i;:::-;13307:16;:42;13353:58;13369:10;13381:15;13398:5;;13353:15;:58::i;:::-;13420:57;;;;;;;;-1:-1:-1;;;;;13420:57:30;;;13439:10;;13420:57;;;;;;;;;13488:4;13481:11;;;580:1:2;12623:873:30;;;:::o;363:23::-;;;;:::o;1987:102:7:-;2032:4;2055:27;2076:4;2055:12;:27::i;615:31:30:-;;;;:::o;274:20:2:-;;;;;;:::o;278:24:11:-;;;-1:-1:-1;;;;;278:24:11;;:::o;4812:158:30:-;932:6:7;;-1:-1:-1;;;;;932:6:7;943:10;924:29;916:74;;;;;-1:-1:-1;;;916:74:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4899:1:30;4886:10;:14;4878:60;;;;-1:-1:-1;;;4878:60:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4942:11;:24;4812:158::o;7713:324::-;-1:-1:-1;;;;;7806:21:30;;7774:4;7806:21;;;:11;:21;;;;;;7835:22;7818:8;7835:12;:22::i;:::-;7831:187;;;7864:26;7893:32;7918:6;7893:20;:3;7901:11;7893:20;:7;:20;:::i;:32::-;7864:61;;7955:15;;7934:18;:36;7930:84;;;8004:4;7997:11;;;;;;7930:84;7831:187;;-1:-1:-1;8028:5:30;;7713:324;-1:-1:-1;;7713:324:30:o;1030:33::-;;;;;;:::o;11928:128::-;12016:4;3088:11;;3081:3;:18;;3073:51;;;;;-1:-1:-1;;;3073:51:30;;;;;;;;;;;;-1:-1:-1;;;3073:51:30;;;;;;;;;;;;;;;544:8:2;;;;536:34;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;;;;1190:8:11;;:34;;;-1:-1:-1;;;1190:34:11;;1213:10;1190:34;;;;;;-1:-1:-1;;;;;1190:8:11;;;;:22;;:34;;;;;;;;;;;;;;;:8;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;1190:34:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1190:34:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1190:34:11;1182:65;;;;;-1:-1:-1;;;1182:65:11;;;;;;;;;;;;-1:-1:-1;;;1182:65:11;;;;;;;;;;;;;;;12034:18:30;12041:10;12034:6;:18::i;243:24:2:-;;;;:::o;2077:52:30:-;;;;;;;;;;;;;;;:::o;1959:48::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;827:25:8:-;;;;:::o;2735:168:11:-;863:9:77;:7;:9::i;:::-;855:18;;;;;;2811:9:11;-1:-1:-1;;;;;2811:22:11;;:24;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2811:24:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2811:24:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2811:24:11;2803:63;;;;;-1:-1:-1;;;2803:63:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;2876:8;:20;;-1:-1:-1;;;;;;2876:20:11;-1:-1:-1;;;;;2876:20:11;;;;;;;;;;2735:168::o;1347:137:77:-;863:9;:7;:9::i;:::-;855:18;;;;;;1429:6;;1408:40;;1445:1;;-1:-1:-1;;;;;1429:6:77;;1408:40;;1445:1;;1408:40;1458:6;:19;;-1:-1:-1;;;;;;1458:19:77;;;1347:137::o;6790:119:30:-;6874:10;;6848:4;6865:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;6865:40:30;;;;;;;;;;;;;;6790:119::o;1443:33::-;;;;:::o;1655:36::-;;;-1:-1:-1;;;;;1655:36:30;;:::o;564:32:8:-;;;;:::o;659:77:77:-;723:6;;-1:-1:-1;;;;;723:6:77;659:77;:::o;979:90::-;1056:6;;-1:-1:-1;;;;;1056:6:77;1042:10;:20;;979:90::o;9595:649:30:-;544:8:2;;9658:7:30;;544:8:2;;536:34;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;;;;9740:24:30;9753:10;9740:12;:24::i;:::-;9739:25;:61;;;-1:-1:-1;9789:10:30;9768:32;;;;:20;:32;;;;;;;;9739:61;9735:112;;;9814:14;;;;;;;;;-1:-1:-1;;;;;9814:14:30;-1:-1:-1;;;;;9814:26:30;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9814:28:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9814:28:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9814:28:30;;-1:-1:-1;9807:35:30;;9735:112;9963:34;9990:6;9964:20;9972:11;;9964:3;:7;;:20;;;;:::i;9963:34::-;9949:10;;:48;9945:108;;;10011:22;10022:10;10011;:22::i;:::-;:37;;10040:8;;10011:37;;;10036:1;10011:37;10004:44;;;;9945:108;10097:14;10114:6;;;;;;;;;-1:-1:-1;;;;;10114:6:30;-1:-1:-1;;;;;10114:18:30;;:20;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10114:20:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10114:20:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10114:20:30;10163:30;;;-1:-1:-1;;;10163:30:30;;10187:4;10163:30;;;;;;10114:20;;-1:-1:-1;10138:22:30;;-1:-1:-1;;;;;10163:15:30;;;;;:30;;;;;10114:20;;10163:30;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;10163:30:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10163:30:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10163:30:30;10223:16;;10163:30;;-1:-1:-1;10204:36:30;;10163:30;;10204:36;:18;:36;:::i;:::-;10197:43;;;;9595:649;:::o;1255:29::-;;;;:::o;7085:214::-;-1:-1:-1;;;;;7178:21:30;;7146:4;7178:21;;;:11;:21;;;;;;7207:15;;7203:77;;7271:4;7264:11;;;;;924:30;;;;:::o;1324:27::-;;;;:::o;14396:315::-;14439:13;:11;:13::i;:::-;14470:15;:3;14478:6;14470:15;:7;:15;:::i;:::-;14488:6;14470:24;14497:8;14470:35;14456:11;:49;;;14538:12;:26;;;;14568:10;;14603:14;;14623:63;;;14680:4;14623:63;;;;;;;;;;26:21:-1;;;22:32;;6:49;;14623:63:30;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;;;;182:15;;;179:29;160:49;;14691:6:30;;;14568:139;;-1:-1:-1;;;14568:139:30;;-1:-1:-1;;;;;14603:14:30;;;14568:139;;;;;;14691:6;;;14568:139;;;;;;;;;;;;;;;;;;;;;;;;;;;:10;;;;;:22;;14603:14;;14623:63;;14456:11;;14568:139;;;;;;;;;25:18:-1;14568:139:30;;25:18:-1;14456:11:30;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14568:139:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14568:139:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14568:139:30;;;;;;39:16:-1;36:1;17:17;2:54;101:4;14568:139:30;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;14568:139:30;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;14568:139:30;;420:4:-1;411:14;;;;14568:139:30;;;;;411:14:-1;14568:139:30;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14568:139:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14396:315::o;443:41::-;;;;:::o;13735:482::-;544:8:2;;13818:7:30;;544:8:2;;536:34;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;;;;13837:9:30;13832:317;13856:9;:16;13852:1;:20;13832:317;;;13900:17;;13888:9;:29;13884:80;;;13930:14;;;;;;;;;;;;;;;;;13957:1;-1:-1:-1;13950:8:30;;13884:80;13977:26;13990:9;14000:1;13990:12;;;;;;;;;;;;;;13977;:26::i;:::-;:61;;;;;14012:26;14025:9;14035:1;14025:12;;;;;;;;;;;;;;14012;:26::i;:::-;14011:27;13977:61;:104;;;;;14047:20;:34;14068:9;14078:1;14068:12;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14047:34:30;;;;;;;;;;;-1:-1:-1;14047:34:30;;;;14046:35;13977:104;13968:177;;;14101:18;14106:9;14116:1;14106:12;;;;;;;;;;;;;;14101:4;:18::i;:::-;14093:46;;;;;-1:-1:-1;;;14093:46:30;;;;;;;;;;;;-1:-1:-1;;;14093:46:30;;;;;;;;;;;;;;;13874:3;;13832:317;;;-1:-1:-1;14169:16:30;;14157:29;;;;;;;;;;;;;;;;-1:-1:-1;14197:16:30;;13735:482::o;2235:262:7:-;2318:6;;2294:4;;-1:-1:-1;;;;;2318:6:7;2310:49;;;;;-1:-1:-1;;;2310:49:7;;;;;;;;;;;;-1:-1:-1;;;2310:49:7;;;;;;;;;;;;;;;2376:10;;2422:6;;;2376:54;;;-1:-1:-1;;;2376:54:7;;-1:-1:-1;;;;;2376:54:7;;;;;;;;;;2422:6;;;2376:54;;;;;:10;;;;;:29;;:54;;;;;;;;;;;;;;:10;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;2376:54:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2376:54:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2376:54:7;2370:100;;-1:-1:-1;2454:5:7;2447:12;;2370:100;-1:-1:-1;2486:4:7;2235:262;;;:::o;2273:122:8:-;2332:7;2358:13;;;:8;:13;;;;;:30;;;;2273:122::o;2164:53:30:-;;;;;;;;;;;;;:::o;2655:116:8:-;2713:7;2739:13;;;:8;:13;;;;;:25;;;;2655:116::o;786:30:30:-;;;;:::o;6553:80::-;6595:34;6622:6;6596:20;6604:11;;6596:3;:7;;:20;;;;:::i;6595:34::-;6582:10;:47;6553:80::o;14836:121::-;932:6:7;;-1:-1:-1;;;;;932:6:7;943:10;924:29;916:74;;;;;-1:-1:-1;;;916:74:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14914:21:30;:39;;-1:-1:-1;;14914:39:30;;;;;;;;;;14836:121::o;1140:26::-;;;;:::o;211::2:-;;;;:::o;14960:52:30:-;932:6:7;;-1:-1:-1;;;;;932:6:7;943:10;924:29;916:74;;;;;-1:-1:-1;;;916:74:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14997:11:30;:9;:11::i;:::-;14960:52::o;1655:107:77:-;863:9;:7;:9::i;:::-;855:18;;;;;;1727:28;1746:8;1727:18;:28::i;1205:145:76:-;1263:7;1295:1;1290;:6;;1282:15;;;;;;-1:-1:-1;1319:5:76;;;1205:145::o;778:296::-;836:7;933:1;929;:5;921:14;;;;;;945:9;961:1;957;:5;;;;;;;778:296;-1:-1:-1;;;;778:296:76:o;5323:1133:30:-;5405:7;5419:8;:6;:8::i;:::-;5508:15;;5494:10;;:29;5490:943;;5530:14;5547:6;;;;;;;;;-1:-1:-1;;;;;5547:6:30;-1:-1:-1;;;;;5547:18:30;;:20;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5547:20:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5547:20:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5547:20:30;5597:30;;;-1:-1:-1;;;5597:30:30;;5621:4;5597:30;;;;;;5547:20;;-1:-1:-1;5572:22:30;;-1:-1:-1;;;;;5597:15:30;;;;;:30;;;;;5547:20;;5597:30;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5597:30:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5597:30:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5597:30:30;5665:18;;5597:30;;-1:-1:-1;5642:19:30;:17;:19::i;:::-;:41;5633:475;;5733:21;;;;5729:45;;;5756:18;:16;:18::i;:::-;5797:30;;;-1:-1:-1;;;5797:30:30;;5821:4;5797:30;;;;;;-1:-1:-1;;;;;5797:15:30;;;;;:30;;;;;;;;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5797:30:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5797:30:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5797:30:30;5869:11;;5797:30;;-1:-1:-1;5850:31:30;;5797:30;;5850:31;:18;:31;:::i;:::-;5833:14;:48;5908:11;;5887:18;:32;5940:16;:3;5948:7;5940:16;:7;:16;:::i;:::-;5959:7;5940:26;5925:12;:41;6026:10;;6064:11;;6082:14;;6001:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5633:475;6131:10;;6113:15;:28;;;-1:-1:-1;6168:27:30;;;:15;:27;;;;;6221:21;;6200:42;;-1:-1:-1;;6200:42:30;6221:21;;;;6200:42;;;;;-1:-1:-1;6247:16:30;;:33;;;6289:16;;:20;6285:85;;6347:16;;6328:14;;:36;;;:18;:36;:::i;:::-;6317:8;:47;6285:85;6393:10;;6405:8;;6379:49;;;;;;;;;;;;;6415:12;6379:49;;;;;;;;;;;;;;5490:943;;;;-1:-1:-1;6444:8:30;;5323:1133;;;;:::o;8415:835::-;8585:10;;8558:15;8576:20;;;:8;:20;;;;;8648:1;8623:20;;;;:27;;;:24;:27;:::i;:::-;8600:20;;;;:50;;;;-1:-1:-1;;;;;8654:24:30;;:14;:24;;;;;;;;;;;:31;;-1:-1:-1;;8654:31:30;;;;;8689:11;:21;;;;;8713:3;8689:27;;8720:18;:28;;;;;;:35;;;:32;:35;:::i;:::-;;8804:12;8800:447;;;8845:14;;:34;;;-1:-1:-1;;;8845:34:30;;-1:-1:-1;;;;;8845:34:30;;;;;;;;;8823:19;;8845:14;;;;;:24;;:34;;;;;;;;;;;;;;;8823:19;8845:14;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;8845:34:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8845:34:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8845:34:30;8902:15;;;;8845:34;;-1:-1:-1;8902:32:30;;8845:34;8902:32;:19;:32;:::i;:::-;8884:15;;;:50;8944:33;;;;;;;;-1:-1:-1;;;;;8944:33:30;;;;;;;;;;;;;8800:447;;;;9011:15;;;;:28;;9031:7;9011:28;:19;:28;:::i;:::-;8993:15;;;:46;9082:6;;;:20;;;-1:-1:-1;;;9082:20:30;;;;9044:16;;-1:-1:-1;;;;;9082:6:30;;;;:18;;:20;;;;;;;;;;;;;:6;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;9082:20:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9082:20:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9082:20:30;9117:33;;;-1:-1:-1;;;9117:33:30;;-1:-1:-1;;;;;9117:33:30;;;;;;;;;;;;;;;9082:20;;-1:-1:-1;9117:14:30;;;;;;:33;;;;;9082:20;;9117:33;;;;;;;;-1:-1:-1;9117:14:30;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;9117:33:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9117:33:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9117:33:30;9109:67;;;;;-1:-1:-1;;;9109:67:30;;;;;;;;;;;;-1:-1:-1;;;9109:67:30;;;;;;;;;;;;;;;9185:10;9181:62;;;9208:29;;;;;;;;-1:-1:-1;;;;;9208:29:30;;;;;;;;;;;;;9181:62;8800:447;8415:835;;;;;:::o;10584:1018::-;10636:4;10964:23;10990:32;11010:1;11013:8;10990:19;:32::i;:::-;10964:58;;11114:22;11127:8;11114:12;:22::i;:::-;:60;;;;-1:-1:-1;;;;;;11144:30:30;;;;;;:20;:30;;;;;;;;11143:31;11114:60;:88;;;;;11182:20;11193:8;11182:10;:20::i;:::-;11181:21;11114:88;11106:477;;;11212:55;11228:8;11238:15;11255:4;11261:5;11212:15;:55::i;:::-;11279:4;11272:11;;;;;11106:477;11299:22;11312:8;11299:12;:22::i;:::-;11298:23;:57;;;-1:-1:-1;;;;;;11325:30:30;;;;;;:20;:30;;;;;;;;11298:57;11294:289;;;11417:16;;:23;;11438:1;11417:23;:20;:23;:::i;:::-;11398:16;:42;-1:-1:-1;;;;;11445:30:30;;11478:5;11445:30;;;:20;:30;;;;;:38;;-1:-1:-1;;11445:38:30;;;11488:41;;11466:8;;11478:5;11445:38;11488:15;:41::i;:::-;11539:23;;-1:-1:-1;;;;;11539:23:30;;;;;;;;11574:4;11567:11;;;;;3528:804:8;3577:13;:11;:13::i;:::-;3600:11;:9;:11::i;:::-;3658:6;3635:20;3643:11;;3635:3;:7;;:20;;;;:::i;:::-;:29;;;;;;3622:10;:42;3745:6;;;:20;;;-1:-1:-1;;;3745:20:8;;;;3728:14;;-1:-1:-1;;;;;3745:6:8;;;;:18;;:20;;;;;;;;;;;;;:6;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;3745:20:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3745:20:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3745:20:8;3780:14;;3745:20;;-1:-1:-1;3780:18:8;3776:488;;3881:6;;;3857:32;;;-1:-1:-1;;;3857:32:8;;-1:-1:-1;;;;;3881:6:8;;;3857:32;;;;;;;;:15;;;;;;:32;;;;;;;;;;;;;;:15;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;3857:32:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3857:32:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3857:32:8;3839:14;;:50;;3814:134;;;;;-1:-1:-1;;;3814:134:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;3963:10;;4164:14;;4035:161;;;4137:4;4035:161;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;4035:161:8;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;4214:6:8;;;3963:290;;-1:-1:-1;;;3963:290:8;;-1:-1:-1;;;;;3963:290:8;;;;;;;;;4214:6;;;3963:290;;;;;;:10;:290;;;;;;;;;;;;;;;;;;;;;:10;;;;;:22;;4011:5;;4035:161;;4214:6;;3963:10;;:290;;;;;;;;;;;25:18:-1;3963:10:8;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3963:290:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3963:290:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3963:290:8;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3963:290:8;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;3963:290:8;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;3963:290:8;;420:4:-1;411:14;;;;3963:290:8;;;;;411:14:-1;3963:290:8;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3963:290:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3776:488;4289:30;;;-1:-1:-1;;;4289:30:8;;4313:4;4289:30;;;;;;4278:47;;-1:-1:-1;;;;;4289:15:8;;;;;:30;;;;;;;;;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;4289:30:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4289:30:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4289:30:8;4278:47;;;;;;4321:3;4289:30;4278:47;;;;;;;;;;;;244:1:48;3528:804:8:o;4572:395::-;1122:9:2;;1115:3;:16;;1107:49;;;;;-1:-1:-1;;;1107:49:2;;;;;;;;;;;;-1:-1:-1;;;1107:49:2;;;;;;;;;;;;;;;4621:14:8;4638:6;;;;;;;;;-1:-1:-1;;;;;4638:6:8;-1:-1:-1;;;;;4638:18:8;;:20;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4638:20:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4638:20:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4638:20:8;4696:30;;;-1:-1:-1;;;4696:30:8;;4720:4;4696:30;;;;;;4638:20;;-1:-1:-1;4669:24:8;;-1:-1:-1;;;;;4696:15:8;;;;;:30;;;;;4638:20;;4696:30;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;4696:30:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4696:30:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4696:30:8;;-1:-1:-1;4741:20:8;;4737:178;;4825:6;;;4802:49;;;-1:-1:-1;;;4802:49:8;;-1:-1:-1;;;;;4825:6:8;;;4802:49;;;;;;;;;;;;;;:14;;;;;;:49;;;;;;;;;;;;;;4825:6;4802:14;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;4802:49:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4802:49:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4802:49:8;4777:127;;;;;-1:-1:-1;;;4777:127:8;;;;;;;;;;;;-1:-1:-1;;;4777:127:8;;;;;;;;;;;;;;;4925:14;:12;:14::i;:::-;4949:11;:9;:11::i;:::-;1166:1:2;;4572:395:8:o;1906:183:77:-;-1:-1:-1;;;;;1979:22:77;;1971:31;;;;;;2038:6;;2017:38;;-1:-1:-1;;;;;2017:38:77;;;;2038:6;;2017:38;;2038:6;;2017:38;2065:6;:17;;-1:-1:-1;;;;;;2065:17:77;-1:-1:-1;;;;;2065:17:77;;;;;;;;;;1906:183::o;4150:557:30:-;4191:14;4208:6;;;;;;;;;-1:-1:-1;;;;;4208:6:30;-1:-1:-1;;;;;4208:18:30;;:20;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4208:20:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4208:20:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4208:20:30;4254:30;;;-1:-1:-1;;;4254:30:30;;4278:4;4254:30;;;;;;4208:20;;-1:-1:-1;4232:19:30;;-1:-1:-1;;;;;4254:15:30;;;;;:30;;;;;4208:20;;4254:30;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;4254:30:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4254:30:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4254:30:30;4333:6;;;4309:32;;;-1:-1:-1;;;4309:32:30;;-1:-1:-1;;;;;4333:6:30;;;4309:32;;;;;;;;4254:30;;-1:-1:-1;4288:18:30;;4309:15;;;;;;:32;;;;;4254:30;;4309:32;;;;;;;:15;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;4309:32:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4309:32:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4309:32:30;4345:10;;4391:96;;;4461:4;4391:96;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;4391:96:30;;;;;;4309:32;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;4492:6:30;;;4345:163;;-1:-1:-1;;;4345:163:30;;-1:-1:-1;;;;;4345:163:30;;;;;;;;;4492:6;;;4345:163;;;;;;:10;:163;;;;;;;;;;;;;;;;;;;;;4309:32;;-1:-1:-1;4345:10:30;;;;;:22;;4380:5;;4391:96;;4492:6;;4345:163;;;;;;;;;;;25:18:-1;4345:10:30;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4345:163:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:163:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4345:163:30;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4345:163:30;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;4345:163:30;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;4345:163:30;;420:4:-1;411:14;;;;4345:163:30;;;;;411:14:-1;4345:163:30;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4345:163:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4512:18;4533:27;4549:10;4533:11;:15;;:27;;;;:::i;:::-;4590:30;;;-1:-1:-1;;;4590:30:30;;4614:4;4590:30;;;;;;4512:48;;-1:-1:-1;;;;;;4590:15:30;;;;;:30;;;;;;;;;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;4590:30:30;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4590:30:30;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4590:30:30;4576:44;;4564:90;;;;;-1:-1:-1;;;4564:90:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;4663:40;;;;;;;;;;;;;;;;;;;;;;;;;4150:557;;;;:::o;1431:145:76:-;1489:7;1520:5;;;1543:6;;;;1535:15;;;;;;1568:1;1431:145;-1:-1:-1;;;1431:145:76:o;2010:134:2:-;918:11;;911:3;:18;;:37;;;;;939:9;;933:3;:15;911:37;903:63;;;;;-1:-1:-1;;;903:63:2;;;;;;;;;;;;-1:-1:-1;;;903:63:2;;;;;;;;;;;;;;;708:8;;;;707:9;699:40;;;;;-1:-1:-1;;;699:40:2;;;;;;;;;;;;-1:-1:-1;;;699:40:2;;;;;;;;;;;;;;;2077:8;:15;;-1:-1:-1;;2077:15:2;2088:4;2077:15;;;2107:30;;;2133:3;2107:30;;;;2121:10;;2107:30;;;;;;;;;;2010:134::o;786:280:5:-;841:10;;885:8;;908:62;;;964:4;908:62;;;;;;;;;;26:21:-1;;;22:32;;6:49;;908:62:5;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;984:6:5;;;841:174;;-1:-1:-1;;;841:174:5;;-1:-1:-1;;;;;885:8:5;;;841:174;;;;;;984:6;;;841:174;;;;;;:10;:174;;;;;;;;;;;;;;;;;;;;;:10;;;;;:22;;885:8;;908:62;;984:6;841:10;;:174;;;;;;;;;;25:18:-1;841:10:5;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;841:174:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;841:174:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;841:174:5;;;;;;39:16:-1;36:1;17:17;2:54;101:4;841:174:5;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;841:174:5;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;841:174:5;;420:4:-1;411:14;;;;841:174:5;;;;;411:14:-1;841:174:5;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;841:174:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;841:174:5;;-1:-1:-1;;1051:6:5;;1025:34;;-1:-1:-1;;;;;;1051:6:5;;-1:-1:-1;1025:17:5;;-1:-1:-1;1025:34:5:i;1195:242::-;1253:10;;1297:8;;1320:65;;;1379:4;1320:65;;;;;;;;;;26:21:-1;;;22:32;;6:49;;1320:65:5;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1399:6:5;;;1253:177;;-1:-1:-1;;;1253:177:5;;-1:-1:-1;;;;;1297:8:5;;;1253:177;;;;;;1399:6;;;1253:177;;;;;;:10;:177;;;;;;;;;;;;;;;;;;;;;:10;;;;;:22;;1297:8;;1320:65;;1399:6;1253:10;;:177;;;;;;;;;;25:18:-1;1253:10:5;33:3:-1;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2342:82:2;1122:9;;1115:3;:16;;1107:49;;;;;-1:-1:-1;;;1107:49:2;;;;;;;;;;;;-1:-1:-1;;;1107:49:2;;;;;;;;;;;;;;;2410:6;;2398:19;;-1:-1:-1;;;;;2410:6:2;;;;;544:8;;536:34;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;-1:-1:-1;;;536:34:2;;;;;;;;;;;;;;;2795:8;:16;;-1:-1:-1;;2795:16:2;;;2826:28;;;2850:3;2826:28;;;;2838:10;;2826:28;;;;;;;;;;2885:7;-1:-1:-1;;;;;2864:30:2;",
  "source": "pragma solidity >0.5.4;\n\nimport \"../UBIScheme.sol\";\n\n/**\n * @title An UBIScheme mock. Ignores the scheme registration.\n * Those tests can be found on e2e tests.\n */\ncontract UBISchemeMock is UBIScheme {\n\n    modifier onlyRegistered() {\n        _;\n    }\n\n    constructor(\n        Avatar _avatar,\n        Identity _identity,\n        FirstClaimPool _firstClaimPool,\n        uint256 _periodStart,\n        uint256 _periodEnd,\n        uint256 _maxInactiveDays,\n        uint256 _cycleLength\n    )\n        public\n        UBIScheme(\n            _avatar,\n            _identity,\n            _firstClaimPool,\n            _periodStart,\n            _periodEnd,\n            _maxInactiveDays,\n            _cycleLength        )\n    {\n        shouldWithdrawFromDAO = true;\n    }\n\n    // //we mock this to skip the onlyRegistered modifier that requires scheme registration, dao voting etc...\n    // function start() public {\n    //     controller.genericCall(\n    //         address(firstClaimPool),\n    //         abi.encodeWithSignature(\"setUBIScheme(address)\", address(this)),\n    //         avatar,\n    //         0\n    //     );\n    // }\n\n    // function end() public onlyAvatar {\n    //     DAOToken token = avatar.nativeToken();\n    //     uint256 remainingGDReserve = token.balanceOf(address(this));\n    //     if (remainingGDReserve > 0) {\n    //         token.transfer(address(avatar), remainingGDReserve);\n    //     }\n    //     selfdestruct(address(avatar));\n    // }\n}\n",
  "sourcePath": "/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/stakingModel/contracts/mocks/UBISchemeMock.sol",
  "ast": {
    "absolutePath": "/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/stakingModel/contracts/mocks/UBISchemeMock.sol",
    "exportedSymbols": {
      "UBISchemeMock": [
        12060
      ]
    },
    "id": 12061,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12021,
        "literals": [
          "solidity",
          ">",
          "0.5",
          ".4"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:48"
      },
      {
        "absolutePath": "/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/stakingModel/contracts/UBIScheme.sol",
        "file": "../UBIScheme.sol",
        "id": 12022,
        "nodeType": "ImportDirective",
        "scope": 12061,
        "sourceUnit": 10763,
        "src": "25:26:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12023,
              "name": "UBIScheme",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10762,
              "src": "191:9:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_UBIScheme_$10762",
                "typeString": "contract UBIScheme"
              }
            },
            "id": 12024,
            "nodeType": "InheritanceSpecifier",
            "src": "191:9:48"
          }
        ],
        "contractDependencies": [
          1004,
          1227,
          1423,
          1785,
          2667,
          10762,
          21417
        ],
        "contractKind": "contract",
        "documentation": "@title An UBIScheme mock. Ignores the scheme registration.\nThose tests can be found on e2e tests.",
        "fullyImplemented": true,
        "id": 12060,
        "linearizedBaseContracts": [
          12060,
          10762,
          1785,
          1227,
          2667,
          1423,
          21417,
          1004
        ],
        "name": "UBISchemeMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 12027,
              "nodeType": "Block",
              "src": "234:18:48",
              "statements": [
                {
                  "id": 12026,
                  "nodeType": "PlaceholderStatement",
                  "src": "244:1:48"
                }
              ]
            },
            "documentation": null,
            "id": 12028,
            "name": "onlyRegistered",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 12025,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "231:2:48"
            },
            "src": "208:44:48",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12058,
              "nodeType": "Block",
              "src": "715:45:48",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12054,
                      "name": "shouldWithdrawFromDAO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9763,
                      "src": "725:21:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 12055,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "749:4:48",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "725:28:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 12057,
                  "nodeType": "ExpressionStatement",
                  "src": "725:28:48"
                }
              ]
            },
            "documentation": null,
            "id": 12059,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12045,
                    "name": "_avatar",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12030,
                    "src": "536:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12705",
                      "typeString": "contract Avatar"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12046,
                    "name": "_identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12032,
                    "src": "557:9:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Identity_$2380",
                      "typeString": "contract Identity"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12047,
                    "name": "_firstClaimPool",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12034,
                    "src": "580:15:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_FirstClaimPool_$6959",
                      "typeString": "contract FirstClaimPool"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12048,
                    "name": "_periodStart",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12036,
                    "src": "609:12:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12049,
                    "name": "_periodEnd",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12038,
                    "src": "635:10:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12050,
                    "name": "_maxInactiveDays",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12040,
                    "src": "659:16:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12051,
                    "name": "_cycleLength",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12042,
                    "src": "689:12:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 12052,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12044,
                  "name": "UBIScheme",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10762,
                  "src": "513:9:48",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_UBIScheme_$10762_$",
                    "typeString": "type(contract UBIScheme)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "513:197:48"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12043,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12030,
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "279:14:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Avatar_$12705",
                    "typeString": "contract Avatar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12029,
                    "name": "Avatar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12705,
                    "src": "279:6:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12705",
                      "typeString": "contract Avatar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12032,
                  "name": "_identity",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "303:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Identity_$2380",
                    "typeString": "contract Identity"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12031,
                    "name": "Identity",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2380,
                    "src": "303:8:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Identity_$2380",
                      "typeString": "contract Identity"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12034,
                  "name": "_firstClaimPool",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "331:30:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_FirstClaimPool_$6959",
                    "typeString": "contract FirstClaimPool"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12033,
                    "name": "FirstClaimPool",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6959,
                    "src": "331:14:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_FirstClaimPool_$6959",
                      "typeString": "contract FirstClaimPool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12036,
                  "name": "_periodStart",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "371:20:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12035,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "371:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12038,
                  "name": "_periodEnd",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "401:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12037,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "401:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12040,
                  "name": "_maxInactiveDays",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "429:24:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12039,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "429:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12042,
                  "name": "_cycleLength",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "463:20:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12041,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "463:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "269:220:48"
            },
            "returnParameters": {
              "id": 12053,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "715:0:48"
            },
            "scope": 12060,
            "src": "258:502:48",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 12061,
        "src": "165:1298:48"
      }
    ],
    "src": "0:1464:48"
  },
  "legacyAST": {
    "absolutePath": "/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/stakingModel/contracts/mocks/UBISchemeMock.sol",
    "exportedSymbols": {
      "UBISchemeMock": [
        12060
      ]
    },
    "id": 12061,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12021,
        "literals": [
          "solidity",
          ">",
          "0.5",
          ".4"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:48"
      },
      {
        "absolutePath": "/Users/hadar/workspace/GoodDollar/GoodBootstrap/packages/contracts/stakingModel/contracts/UBIScheme.sol",
        "file": "../UBIScheme.sol",
        "id": 12022,
        "nodeType": "ImportDirective",
        "scope": 12061,
        "sourceUnit": 10763,
        "src": "25:26:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 12023,
              "name": "UBIScheme",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10762,
              "src": "191:9:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_UBIScheme_$10762",
                "typeString": "contract UBIScheme"
              }
            },
            "id": 12024,
            "nodeType": "InheritanceSpecifier",
            "src": "191:9:48"
          }
        ],
        "contractDependencies": [
          1004,
          1227,
          1423,
          1785,
          2667,
          10762,
          21417
        ],
        "contractKind": "contract",
        "documentation": "@title An UBIScheme mock. Ignores the scheme registration.\nThose tests can be found on e2e tests.",
        "fullyImplemented": true,
        "id": 12060,
        "linearizedBaseContracts": [
          12060,
          10762,
          1785,
          1227,
          2667,
          1423,
          21417,
          1004
        ],
        "name": "UBISchemeMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 12027,
              "nodeType": "Block",
              "src": "234:18:48",
              "statements": [
                {
                  "id": 12026,
                  "nodeType": "PlaceholderStatement",
                  "src": "244:1:48"
                }
              ]
            },
            "documentation": null,
            "id": 12028,
            "name": "onlyRegistered",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 12025,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "231:2:48"
            },
            "src": "208:44:48",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 12058,
              "nodeType": "Block",
              "src": "715:45:48",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 12056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 12054,
                      "name": "shouldWithdrawFromDAO",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9763,
                      "src": "725:21:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 12055,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "749:4:48",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "725:28:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 12057,
                  "nodeType": "ExpressionStatement",
                  "src": "725:28:48"
                }
              ]
            },
            "documentation": null,
            "id": 12059,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 12045,
                    "name": "_avatar",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12030,
                    "src": "536:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12705",
                      "typeString": "contract Avatar"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12046,
                    "name": "_identity",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12032,
                    "src": "557:9:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Identity_$2380",
                      "typeString": "contract Identity"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12047,
                    "name": "_firstClaimPool",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12034,
                    "src": "580:15:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_FirstClaimPool_$6959",
                      "typeString": "contract FirstClaimPool"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12048,
                    "name": "_periodStart",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12036,
                    "src": "609:12:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12049,
                    "name": "_periodEnd",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12038,
                    "src": "635:10:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12050,
                    "name": "_maxInactiveDays",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12040,
                    "src": "659:16:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 12051,
                    "name": "_cycleLength",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 12042,
                    "src": "689:12:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 12052,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 12044,
                  "name": "UBIScheme",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10762,
                  "src": "513:9:48",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_UBIScheme_$10762_$",
                    "typeString": "type(contract UBIScheme)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "513:197:48"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12043,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12030,
                  "name": "_avatar",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "279:14:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Avatar_$12705",
                    "typeString": "contract Avatar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12029,
                    "name": "Avatar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12705,
                    "src": "279:6:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Avatar_$12705",
                      "typeString": "contract Avatar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12032,
                  "name": "_identity",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "303:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Identity_$2380",
                    "typeString": "contract Identity"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12031,
                    "name": "Identity",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2380,
                    "src": "303:8:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Identity_$2380",
                      "typeString": "contract Identity"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12034,
                  "name": "_firstClaimPool",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "331:30:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_FirstClaimPool_$6959",
                    "typeString": "contract FirstClaimPool"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 12033,
                    "name": "FirstClaimPool",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6959,
                    "src": "331:14:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_FirstClaimPool_$6959",
                      "typeString": "contract FirstClaimPool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12036,
                  "name": "_periodStart",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "371:20:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12035,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "371:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12038,
                  "name": "_periodEnd",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "401:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12037,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "401:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12040,
                  "name": "_maxInactiveDays",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "429:24:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12039,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "429:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12042,
                  "name": "_cycleLength",
                  "nodeType": "VariableDeclaration",
                  "scope": 12059,
                  "src": "463:20:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12041,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "463:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "269:220:48"
            },
            "returnParameters": {
              "id": 12053,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "715:0:48"
            },
            "scope": 12060,
            "src": "258:502:48",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 12061,
        "src": "165:1298:48"
      }
    ],
    "src": "0:1464:48"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.16+commit.9c3226ce.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.2.2",
  "updatedAt": "2021-08-23T07:33:52.377Z",
  "devdoc": {
    "methods": {
      "checkEntitlement()": {
        "details": "Checks the amount which the sender address is eligible to claim for, regardless if they have been whitelisted or not. In case the user is active, then the current day must be equal to the actual day, i.e. claim or fish has already been executed today.",
        "return": "The amount of GD tokens the address can claim."
      },
      "claim()": {
        "details": "Function for claiming UBI. Requires contract to be active and claimer to be whitelisted. Calls distributionFormula, calculats the amount the caller can claim, and transfers the amount to the caller. Emits the address of caller and amount claimed.",
        "return": "A bool indicating if UBI was claimed"
      },
      "currentDayInCycle()": {
        "details": "returns the day count since start of current cycle"
      },
      "fish(address)": {
        "details": "In order to update users from active to inactive, we give out incentive to people to update the status of inactive users, this action is called \"Fishing\". Anyone can send a tx to the contract to mark inactive users. The \"fisherman\" receives a reward equal to the daily UBI (ie instead of the “fished” user). User that “last claimed” > 14 can be \"fished\" and made inactive (reduces active users count by one). Requires contract to be active.",
        "params": {
          "_account": "to fish"
        },
        "return": "A bool indicating if UBI was fished"
      },
      "fishMulti(address[])": {
        "details": "executes `fish` with multiple addresses. emits the number of users from the given array who actually been tried being fished.",
        "params": {
          "_accounts": "to fish"
        },
        "return": "A bool indicating if all the UBIs were fished"
      },
      "hasClaimed(address)": {
        "details": "Checks if the given account has claimed today",
        "params": {
          "account": "to check"
        },
        "return": "True if the given user has already claimed today"
      },
      "isActiveUser(address)": {
        "details": "Checks weather the given address is owned by an active user. A registered user is a user that claimed at least one time. An active user is a user that claimed at least one time but claimed at least one time in the last `maxInactiveDays` days. A user that has not claimed for `maxInactiveDays` is an inactive user.",
        "params": {
          "_account": "to check"
        },
        "return": "True for active user"
      },
      "isNotNewUser(address)": {
        "details": "Checks if the given account has been owned by a registered user.",
        "params": {
          "_account": "to check"
        },
        "return": "True for an existing user. False for a new user"
      },
      "isOwner()": {
        "return": "true if `msg.sender` is the owner of the contract."
      },
      "isRegistered()": {
        "details": "function to see if an avatar has been set and if this scheme is registered",
        "return": "true if scheme is registered"
      },
      "isRegistered(address)": {
        "details": "function to see if an avatar has been set and if this scheme is registered",
        "return": "true if scheme is registered"
      },
      "owner()": {
        "return": "the address of the owner."
      },
      "renounceOwnership()": {
        "details": "Allows the current owner to relinquish control of the contract."
      },
      "setAvatar(address)": {
        "details": "Function to set a new avatar and controller for scheme can only be done by owner of scheme"
      },
      "setCycleLength(uint256)": {
        "details": "sets the ubi calculation cycle length",
        "params": {
          "_newLength": "the new length in days"
        }
      },
      "setShouldWithdrawFromDAO(bool)": {
        "details": "Sets whether to also withdraw GD from avatar for UBI",
        "params": {
          "_shouldWithdraw": "boolean if to withdraw"
        }
      },
      "start()": {
        "details": "Start function. Adds this contract to identity as a feeless scheme and adds permissions to FirstClaimPool Can only be called if scheme is registered"
      },
      "transferOwnership(address)": {
        "details": "Allows the current owner to transfer control of the contract to a newOwner.",
        "params": {
          "newOwner": "The address to transfer ownership to."
        }
      }
    },
    "title": "An UBIScheme mock. Ignores the scheme registration. Those tests can be found on e2e tests."
  },
  "userdoc": {
    "methods": {
      "renounceOwnership()": {
        "notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore."
      },
      "setDay()": {
        "notice": "dev Sets the currentDay variable to amount of days since start of contract."
      }
    }
  }
}