{
  "contractName": "DummyERC721Token",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "getApproved",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "tokenOfOwnerByIndex",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "exists",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "tokenByIndex",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_tokenId",
          "type": "uint256"
        },
        {
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        },
        {
          "name": "_operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_tokenNumber",
          "type": "uint256"
        },
        {
          "name": "_name",
          "type": "string"
        },
        {
          "name": "_symbol",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_owner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_approved",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_owner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_operator",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506040516200218a3803806200218a833981018060405281019080805190602001909291908051820192919060200180518201929190505050600082828160049080519060200190620000669291906200046a565b5080600590805190602001906200007f9291906200046a565b505050600090505b83811015620000be57620000b03382620000c86401000000000262001b2e176401000000009004565b808060010191505062000087565b5050505062000519565b620000e88282620001356401000000000262001b85176401000000009004565b600880549050600960008381526020019081526020016000208190555060088190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200017257600080fd5b6200018d8282620001f7640100000000026401000000009004565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000620002198383620002e46401000000000262001956176401000000009004565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020829080600181540180825580915050906001820390600052602060002001600090919290919091505550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156200035257600080fd5b8160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004066001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200044d6401000000000262001ac1179091906401000000009004565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600081830190508281101515156200046157fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004ad57805160ff1916838001178555620004de565b82800160010185558215620004de579182015b82811115620004dd578251825591602001919060010190620004c0565b5b509050620004ed9190620004f1565b5090565b6200051691905b8082111562000512576000816000905550600101620004f8565b5090565b90565b611c6180620005296000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100eb578063081812fc1461017b578063095ea7b3146101e857806318160ddd1461023557806323b872dd146102605780632f745c59146102cd57806342842e0e1461032e5780634f558e791461039b5780634f6ccce7146103e05780636352211e1461042157806370a082311461048e57806395d89b41146104e5578063a22cb46514610575578063b88d4fde146105c4578063c87b56dd14610677578063e985e9c51461071d575b600080fd5b3480156100f757600080fd5b50610100610798565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610140578082015181840152602081019050610125565b50505050905090810190601f16801561016d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018757600080fd5b506101a66004803603810190808035906020019092919050505061083a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f457600080fd5b50610233600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610877565b005b34801561024157600080fd5b5061024a610a3d565b6040518082815260200191505060405180910390f35b34801561026c57600080fd5b506102cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a4a565b005b3480156102d957600080fd5b50610318600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b61565b6040518082815260200191505060405180910390f35b34801561033a57600080fd5b50610399600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bd8565b005b3480156103a757600080fd5b506103c660048036038101908080359060200190929190505050610c10565b604051808215151515815260200191505060405180910390f35b3480156103ec57600080fd5b5061040b60048036038101908080359060200190929190505050610c81565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610cb9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049a57600080fd5b506104cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d36565b6040518082815260200191505060405180910390f35b3480156104f157600080fd5b506104fa610dba565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053a57808201518184015260208101905061051f565b50505050905090810190601f1680156105675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058157600080fd5b506105c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610e5c565b005b3480156105d057600080fd5b50610675600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f98565b005b34801561068357600080fd5b506106a260048036038101908080359060200190929190505050610fd7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106e25780820151818401526020810190506106c7565b50505050905090810190601f16801561070f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072957600080fd5b5061077e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a0565b604051808215151515815260200191505060405180910390f35b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b5050505050905090565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061088282610cb9565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156108bf57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108ff57506108fe81336110a0565b5b151561090a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff1661092b8361083a565b73ffffffffffffffffffffffffffffffffffffffff1614158061097b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610a3857826001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a35b505050565b6000600880549050905090565b80610a553382611134565b1515610a6057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610a9c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ad857600080fd5b610ae284836111c9565b610aec8483611332565b610af6838361154a565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b6000610b6c83610d36565b82101515610b7957600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515610bc557fe5b9060005260206000200154905092915050565b80610be33382611134565b1515610bee57600080fd5b610c0a8484846020604051908101604052806000815250610f98565b50505050565b60008060008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000610c8b610a3d565b82101515610c9857600080fd5b600882815481101515610ca757fe5b90600052602060002001549050919050565b60008060008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610d2d57600080fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610d7357600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e525780601f10610e2757610100808354040283529160200191610e52565b820191906000526020600020905b815481529060010190602001808311610e3557829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e9757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b81610fa33382611134565b1515610fae57600080fd5b610fb9858585610a4a565b610fc585858585611621565b1515610fd057600080fd5b5050505050565b6060610fe282610c10565b1515610fed57600080fd5b600a60008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110945780601f1061106957610100808354040283529160200191611094565b820191906000526020600020905b81548152906001019060200180831161107757829003601f168201915b50505050509050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008061114083610cb9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111af57508373ffffffffffffffffffffffffffffffffffffffff166111978461083a565b73ffffffffffffffffffffffffffffffffffffffff16145b806111c057506111bf81856110a0565b5b91505092915050565b8173ffffffffffffffffffffffffffffffffffffffff166111e982610cb9565b73ffffffffffffffffffffffffffffffffffffffff1614151561120b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561132e5760006001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b5050565b6000806000611341858561180f565b600760008581526020019081526020016000205492506113ad6001600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061193d90919063ffffffff16565b9150600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156113fb57fe5b9060005260206000200154905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561145557fe5b90600052602060002001819055506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156114b157fe5b9060005260206000200181905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036115119190611add565b50600060076000868152602001908152602001600020819055508260076000838152602001908152602001600020819055505050505050565b60006115568383611956565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020829080600181540180825580915050906001820390600052602060002001600090919290919091505550806007600084815260200190815260200160002081905550505050565b6000806116438573ffffffffffffffffffffffffffffffffffffffff16611aae565b15156116525760019150611806565b8473ffffffffffffffffffffffffffffffffffffffff1663f0b9e5ba8786866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117145780820151818401526020810190506116f9565b50505050905090810190601f1680156117415780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561176257600080fd5b505af1158015611776573d6000803e3d6000fd5b505050506040513d602081101561178c57600080fd5b8101908080519060200190929190505050905063f0b9e5ba7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff1661182f82610cb9565b73ffffffffffffffffffffffffffffffffffffffff1614151561185157600080fd5b6118a46001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193d90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600082821115151561194b57fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156119c357600080fd5b8160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a676001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac190919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080823b905060008111915050919050565b60008183019050828110151515611ad457fe5b80905092915050565b815481835581811115611b0457818360005260206000209182019101611b039190611b09565b5b505050565b611b2b91905b80821115611b27576000816000905550600101611b0f565b5090565b90565b611b388282611b85565b600880549050600960008381526020019081526020016000208190555060088190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611bc157600080fd5b611bcb828261154a565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505600a165627a7a723058201a3beaabebdbb02c7aaad420b9fc432478f1973c05eb7f124f21ed25f729d4f20029",
  "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146100eb578063081812fc1461017b578063095ea7b3146101e857806318160ddd1461023557806323b872dd146102605780632f745c59146102cd57806342842e0e1461032e5780634f558e791461039b5780634f6ccce7146103e05780636352211e1461042157806370a082311461048e57806395d89b41146104e5578063a22cb46514610575578063b88d4fde146105c4578063c87b56dd14610677578063e985e9c51461071d575b600080fd5b3480156100f757600080fd5b50610100610798565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610140578082015181840152602081019050610125565b50505050905090810190601f16801561016d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018757600080fd5b506101a66004803603810190808035906020019092919050505061083a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101f457600080fd5b50610233600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610877565b005b34801561024157600080fd5b5061024a610a3d565b6040518082815260200191505060405180910390f35b34801561026c57600080fd5b506102cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a4a565b005b3480156102d957600080fd5b50610318600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b61565b6040518082815260200191505060405180910390f35b34801561033a57600080fd5b50610399600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bd8565b005b3480156103a757600080fd5b506103c660048036038101908080359060200190929190505050610c10565b604051808215151515815260200191505060405180910390f35b3480156103ec57600080fd5b5061040b60048036038101908080359060200190929190505050610c81565b6040518082815260200191505060405180910390f35b34801561042d57600080fd5b5061044c60048036038101908080359060200190929190505050610cb9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049a57600080fd5b506104cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d36565b6040518082815260200191505060405180910390f35b3480156104f157600080fd5b506104fa610dba565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561053a57808201518184015260208101905061051f565b50505050905090810190601f1680156105675780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058157600080fd5b506105c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610e5c565b005b3480156105d057600080fd5b50610675600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f98565b005b34801561068357600080fd5b506106a260048036038101908080359060200190929190505050610fd7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106e25780820151818401526020810190506106c7565b50505050905090810190601f16801561070f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072957600080fd5b5061077e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a0565b604051808215151515815260200191505060405180910390f35b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b5050505050905090565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061088282610cb9565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156108bf57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806108ff57506108fe81336110a0565b5b151561090a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff1661092b8361083a565b73ffffffffffffffffffffffffffffffffffffffff1614158061097b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610a3857826001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a35b505050565b6000600880549050905090565b80610a553382611134565b1515610a6057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610a9c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610ad857600080fd5b610ae284836111c9565b610aec8483611332565b610af6838361154a565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b6000610b6c83610d36565b82101515610b7957600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515610bc557fe5b9060005260206000200154905092915050565b80610be33382611134565b1515610bee57600080fd5b610c0a8484846020604051908101604052806000815250610f98565b50505050565b60008060008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000610c8b610a3d565b82101515610c9857600080fd5b600882815481101515610ca757fe5b90600052602060002001549050919050565b60008060008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610d2d57600080fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610d7357600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e525780601f10610e2757610100808354040283529160200191610e52565b820191906000526020600020905b815481529060010190602001808311610e3557829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e9757600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b81610fa33382611134565b1515610fae57600080fd5b610fb9858585610a4a565b610fc585858585611621565b1515610fd057600080fd5b5050505050565b6060610fe282610c10565b1515610fed57600080fd5b600a60008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110945780601f1061106957610100808354040283529160200191611094565b820191906000526020600020905b81548152906001019060200180831161107757829003601f168201915b50505050509050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008061114083610cb9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806111af57508373ffffffffffffffffffffffffffffffffffffffff166111978461083a565b73ffffffffffffffffffffffffffffffffffffffff16145b806111c057506111bf81856110a0565b5b91505092915050565b8173ffffffffffffffffffffffffffffffffffffffff166111e982610cb9565b73ffffffffffffffffffffffffffffffffffffffff1614151561120b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561132e5760006001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b5050565b6000806000611341858561180f565b600760008581526020019081526020016000205492506113ad6001600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061193d90919063ffffffff16565b9150600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156113fb57fe5b9060005260206000200154905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561145557fe5b90600052602060002001819055506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156114b157fe5b9060005260206000200181905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036115119190611add565b50600060076000868152602001908152602001600020819055508260076000838152602001908152602001600020819055505050505050565b60006115568383611956565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020829080600181540180825580915050906001820390600052602060002001600090919290919091505550806007600084815260200190815260200160002081905550505050565b6000806116438573ffffffffffffffffffffffffffffffffffffffff16611aae565b15156116525760019150611806565b8473ffffffffffffffffffffffffffffffffffffffff1663f0b9e5ba8786866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117145780820151818401526020810190506116f9565b50505050905090810190601f1680156117415780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561176257600080fd5b505af1158015611776573d6000803e3d6000fd5b505050506040513d602081101561178c57600080fd5b8101908080519060200190929190505050905063f0b9e5ba7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff1661182f82610cb9565b73ffffffffffffffffffffffffffffffffffffffff1614151561185157600080fd5b6118a46001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193d90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600082821115151561194b57fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156119c357600080fd5b8160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a676001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac190919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080823b905060008111915050919050565b60008183019050828110151515611ad457fe5b80905092915050565b815481835581811115611b0457818360005260206000209182019101611b039190611b09565b5b505050565b611b2b91905b80821115611b27576000816000905550600101611b0f565b5090565b90565b611b388282611b85565b600880549050600960008381526020019081526020016000208190555060088190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611bc157600080fd5b611bcb828261154a565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505600a165627a7a723058201a3beaabebdbb02c7aaad420b9fc432478f1973c05eb7f124f21ed25f729d4f20029",
  "sourceMap": "235:377:14:-;;;415:195;8:9:-1;5:2;;;30:1;27;20:12;5:2;415:195:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:6;499:5;506:7;1137:5:41;1129;:13;;;;;;;;;;;;:::i;:::-;;1158:7;1148;:17;;;;;;;;;;;;:::i;:::-;;1074:96;;539:1:14;530:10;;525:78;546:12;542:1;:16;525:78;;;577:26;589:10;601:1;577:11;;;;;:26;;;:::i;:::-;560:3;;;;;;;525:78;;;415:195;;;;235:377;;5340:172:41;5401:26;5413:3;5418:8;5401:11;;;;;:26;;;:::i;:::-;5461:9;:16;;;;5434:14;:24;5449:8;5434:24;;;;;;;;;;;:43;;;;5483:9;5498:8;5483:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;5483:24:41;;;;;;;;;;;;;;;;;;;;;;5340:172;;:::o;8320:169:39:-;8404:1;8389:17;;:3;:17;;;;8381:26;;;;;;;;8413:25;8424:3;8429:8;8413:10;;;:25;;;:::i;:::-;8470:3;8449:35;;8466:1;8449:35;;;8475:8;8449:35;;;;;;;;;;;;;;;;;;8320:169;;:::o;3713:226:41:-;3816:14;3779:31;3796:3;3801:8;3779:16;;;;;:31;;;:::i;:::-;3833:11;:16;3845:3;3833:16;;;;;;;;;;;;;;;:23;;;;3816:40;;3862:11;:16;3874:3;3862:16;;;;;;;;;;;;;;;3884:8;3862:31;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3862:31:41;;;;;;;;;;;;;;;;;;;;;;3928:6;3899:16;:26;3916:8;3899:26;;;;;;;;;;;:35;;;;3713:226;;;:::o;9663:204:39:-;9769:1;9737:34;;:10;:20;9748:8;9737:20;;;;;;;;;;;;;;;;;;;;;:34;;;9729:43;;;;;;;;9801:3;9778:10;:20;9789:8;9778:20;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9834:28;9860:1;9834:16;:21;9851:3;9834:21;;;;;;;;;;;;;;;;:25;;;;;;:28;;;;;:::i;:::-;9810:16;:21;9827:3;9810:21;;;;;;;;;;;;;;;:52;;;;9663:204;;:::o;1214:123:29:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;235:377:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "235:377:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1264:68:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1264:68:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1264:68:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3603:111:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3603:111:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3021:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3021:355:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2534:87:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2534:87:41;;;;;;;;;;;;;;;;;;;;;;;5109:342:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5109:342:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2189:203:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2189:203:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6067:225:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6067:225:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2461:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2461:140:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2950::41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2950:140:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2119:164:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2119:164:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1764:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1764:142:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1430:72:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1430:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1430:72:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3999:205:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3999:205:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6979:302;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6979:302:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1695:133:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1695:133:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1695:133:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4513:168:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4513:168:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1264:68:41;1301:6;1322:5;1315:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1264:68;:::o;3603:111:39:-;3663:7;3685:14;:24;3700:8;3685:24;;;;;;;;;;;;;;;;;;;;;3678:31;;3603:111;;;:::o;3021:355::-;3082:13;3098:17;3106:8;3098:7;:17::i;:::-;3082:33;;3136:5;3129:12;;:3;:12;;;;3121:21;;;;;;;;3170:5;3156:19;;:10;:19;;;:58;;;;3179:35;3196:5;3203:10;3179:16;:35::i;:::-;3156:58;3148:67;;;;;;;;3259:1;3226:35;;:21;3238:8;3226:11;:21::i;:::-;:35;;;;:56;;;;3280:1;3265:17;;:3;:17;;;;3226:56;3222:150;;;3319:3;3292:14;:24;3307:8;3292:24;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;3351:3;3335:30;;3344:5;3335:30;;;3356:8;3335:30;;;;;;;;;;;;;;;;;;3222:150;3021:355;;;:::o;2534:87:41:-;2578:7;2600:9;:16;;;;2593:23;;2534:87;:::o;5109:342:39:-;5220:8;1520:39;1538:10;1550:8;1520:17;:39::i;:::-;1512:48;;;;;;;;5263:1;5246:19;;:5;:19;;;;5238:28;;;;;;;;5295:1;5280:17;;:3;:17;;;;5272:26;;;;;;;;5305:30;5319:5;5326:8;5305:13;:30::i;:::-;5341:32;5357:5;5364:8;5341:15;:32::i;:::-;5379:25;5390:3;5395:8;5379:10;:25::i;:::-;5432:3;5416:30;;5425:5;5416:30;;;5437:8;5416:30;;;;;;;;;;;;;;;;;;5109:342;;;;:::o;2189:203:41:-;2295:7;2329:17;2339:6;2329:9;:17::i;:::-;2320:6;:26;2312:35;;;;;;;;2360:11;:19;2372:6;2360:19;;;;;;;;;;;;;;;2380:6;2360:27;;;;;;;;;;;;;;;;;;2353:34;;2189:203;;;;:::o;6067:225:39:-;6182:8;1520:39;1538:10;1550:8;1520:17;:39::i;:::-;1512:48;;;;;;;;6245:42;6262:5;6269:3;6274:8;6245:42;;;;;;;;;;;;;:16;:42::i;:::-;6067:225;;;;:::o;2461:140::-;2516:4;2528:13;2544:10;:20;2555:8;2544:20;;;;;;;;;;;;;;;;;;;;;2528:36;;2594:1;2577:19;;:5;:19;;;;2570:26;;2461:140;;;;:::o;2950::41:-;3009:7;3041:13;:11;:13::i;:::-;3032:6;:22;3024:31;;;;;;;;3068:9;3078:6;3068:17;;;;;;;;;;;;;;;;;;3061:24;;2950:140;;;:::o;2119:164:39:-;2175:7;2190:13;2206:10;:20;2217:8;2206:20;;;;;;;;;;;;;;;;;;;;;2190:36;;2257:1;2240:19;;:5;:19;;;;2232:28;;;;;;;;2273:5;2266:12;;2119:164;;;;:::o;1764:142::-;1820:7;1861:1;1843:20;;:6;:20;;;;1835:29;;;;;;;;1877:16;:24;1894:6;1877:24;;;;;;;;;;;;;;;;1870:31;;1764:142;;;:::o;1430:72:41:-;1469:6;1490:7;1483:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1430:72;:::o;3999:205:39:-;4083:10;4076:17;;:3;:17;;;;4068:26;;;;;;;;4137:9;4100:17;:29;4118:10;4100:29;;;;;;;;;;;;;;;:34;4130:3;4100:34;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;4184:3;4157:42;;4172:10;4157:42;;;4189:9;4157:42;;;;;;;;;;;;;;;;;;;;;;3999:205;;:::o;6979:302::-;7111:8;1520:39;1538:10;1550:8;1520:17;:39::i;:::-;1512:48;;;;;;;;7129:34;7142:5;7149:3;7154:8;7129:12;:34::i;:::-;7222:53;7247:5;7254:3;7259:8;7269:5;7222:24;:53::i;:::-;7214:62;;;;;;;;6979:302;;;;;:::o;1695:133:41:-;1752:6;1774:16;1781:8;1774:6;:16::i;:::-;1766:25;;;;;;;;1804:9;:19;1814:8;1804:19;;;;;;;;;;;1797:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1695:133;;;:::o;4513:168:39:-;4619:4;4640:17;:25;4658:6;4640:25;;;;;;;;;;;;;;;:36;4666:9;4640:36;;;;;;;;;;;;;;;;;;;;;;;;;4633:43;;4513:168;;;;:::o;7628:438::-;7738:4;7752:13;7768:17;7776:8;7768:7;:17::i;:::-;7752:33;;7964:5;7952:17;;:8;:17;;;:60;;;;8004:8;7979:33;;:21;7991:8;7979:11;:21::i;:::-;:33;;;7952:60;:103;;;;8022:33;8039:5;8046:8;8022:16;:33::i;:::-;7952:103;7937:124;;7628:438;;;;;:::o;9135:265::-;9236:6;9215:27;;:17;9223:8;9215:7;:17::i;:::-;:27;;;9207:36;;;;;;;;9289:1;9253:38;;:14;:24;9268:8;9253:24;;;;;;;;;;;;;;;;;;;;;:38;;;;9249:147;;;9336:1;9301:14;:24;9316:8;9301:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;9376:1;9351:38;;9360:6;9351:38;;;9380:8;9351:38;;;;;;;;;;;;;;;;;;9249:147;9135:265;;:::o;4218:856:41:-;4336:18;4389:22;4452:17;4291:38;4313:5;4320:8;4291:21;:38::i;:::-;4357:16;:26;4374:8;4357:26;;;;;;;;;;;;4336:47;;4414:32;4444:1;4414:11;:18;4426:5;4414:18;;;;;;;;;;;;;;;:25;;;;:29;;:32;;;;:::i;:::-;4389:57;;4472:11;:18;4484:5;4472:18;;;;;;;;;;;;;;;4491:14;4472:34;;;;;;;;;;;;;;;;;;4452:54;;4546:9;4513:11;:18;4525:5;4513:18;;;;;;;;;;;;;;;4532:10;4513:30;;;;;;;;;;;;;;;;;:42;;;;4598:1;4561:11;:18;4573:5;4561:18;;;;;;;;;;;;;;;4580:14;4561:34;;;;;;;;;;;;;;;;;:38;;;;4960:11;:18;4972:5;4960:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:::i;:::-;;5022:1;4993:16;:26;5010:8;4993:26;;;;;;;;;;;:30;;;;5059:10;5029:16;:27;5046:9;5029:27;;;;;;;;;;;:40;;;;4218:856;;;;;:::o;3713:226::-;3816:14;3779:31;3796:3;3801:8;3779:16;:31::i;:::-;3833:11;:16;3845:3;3833:16;;;;;;;;;;;;;;;:23;;;;3816:40;;3862:11;:16;3874:3;3862:16;;;;;;;;;;;;;;;3884:8;3862:31;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3862:31:41;;;;;;;;;;;;;;;;;;;;;;3928:6;3899:16;:26;3916:8;3899:26;;;;;;;;;;;:35;;;;3713:226;;;:::o;10871:335:39:-;11010:4;11078:13;11029:16;:3;:14;;;:16::i;:::-;11028:17;11024:49;;;11062:4;11055:11;;;;11024:49;11109:3;11094:36;;;11138:5;11145:8;11155:5;11094:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11094:67:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11094:67:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11094:67:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11094:67:39;;;;;;;;;;;;;;;;11078:83;;604:10;11185:15;;11175:25;;;:6;:25;;;;11167:34;;10871:335;;;;;;;;:::o;10146:214::-;10248:5;10227:26;;:17;10235:8;10227:7;:17::i;:::-;:26;;;10219:35;;;;;;;;10286:30;10314:1;10286:16;:23;10303:5;10286:23;;;;;;;;;;;;;;;;:27;;:30;;;;:::i;:::-;10260:16;:23;10277:5;10260:23;;;;;;;;;;;;;;;:56;;;;10353:1;10322:10;:20;10333:8;10322:20;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;10146:214;;:::o;1042:110:29:-;1100:7;1127:1;1122;:6;;1115:14;;;;;;1146:1;1142;:5;1135:12;;1042:110;;;;:::o;9663:204:39:-;9769:1;9737:34;;:10;:20;9748:8;9737:20;;;;;;;;;;;;;;;;;;;;;:34;;;9729:43;;;;;;;;9801:3;9778:10;:20;9789:8;9778:20;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9834:28;9860:1;9834:16;:21;9851:3;9834:21;;;;;;;;;;;;;;;;:25;;:28;;;;:::i;:::-;9810:16;:21;9827:3;9810:21;;;;;;;;;;;;;;;:52;;;;9663:204;;:::o;438:576:27:-;495:4;507:12;982:4;970:17;962:25;;1008:1;1001:4;:8;994:15;;438:576;;;;:::o;1214:123:29:-;1272:9;1297:1;1293;:5;1289:9;;1316:1;1311;:6;;1304:14;;;;;;1331:1;1324:8;;1214:123;;;;:::o;235:377:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5340:172:41:-;5401:26;5413:3;5418:8;5401:11;:26::i;:::-;5461:9;:16;;;;5434:14;:24;5449:8;5434:24;;;;;;;;;;;:43;;;;5483:9;5498:8;5483:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;5483:24:41;;;;;;;;;;;;;;;;;;;;;;5340:172;;:::o;8320:169:39:-;8404:1;8389:17;;:3;:17;;;;8381:26;;;;;;;;8413:25;8424:3;8429:8;8413:10;:25::i;:::-;8470:3;8449:35;;8466:1;8449:35;;;8475:8;8449:35;;;;;;;;;;;;;;;;;;8320:169;;:::o",
  "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol\";\n\n\n/**\n * @title MintableNonFungibleToken\n *\n * Superset of the ERC721 standard that allows for the minting\n * of non-fungible tokens.\n */\ncontract DummyERC721Token is ERC721Token {\n    using SafeMath for uint;\n\n    // An ERC721 token that allows you to mint the number of tokens you want in\n    // the constructor\n    constructor(uint _tokenNumber, string _name, string _symbol)\n    public ERC721Token(_name, _symbol) {\n        for (uint i = 0; i < _tokenNumber; i++)\n            super._mint(msg.sender, i);\n    }\n}\n",
  "sourcePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/Examples/DummyERC721Token.sol",
  "ast": {
    "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/Examples/DummyERC721Token.sol",
    "exportedSymbols": {
      "DummyERC721Token": [
        3217
      ]
    },
    "id": 3218,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3177,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:14"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol",
        "id": 3178,
        "nodeType": "ImportDirective",
        "scope": 3218,
        "sourceUnit": 6095,
        "src": "26:70:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3179,
              "name": "ERC721Token",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6094,
              "src": "264:11:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC721Token_$6094",
                "typeString": "contract ERC721Token"
              }
            },
            "id": 3180,
            "nodeType": "InheritanceSpecifier",
            "src": "264:11:14"
          }
        ],
        "contractDependencies": [
          4989,
          5009,
          5016,
          5123,
          5707,
          6094
        ],
        "contractKind": "contract",
        "documentation": "@title MintableNonFungibleToken\n * Superset of the ERC721 standard that allows for the minting\nof non-fungible tokens.",
        "fullyImplemented": true,
        "id": 3217,
        "linearizedBaseContracts": [
          3217,
          6094,
          5707,
          5016,
          5009,
          4989,
          5123
        ],
        "name": "DummyERC721Token",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3183,
            "libraryName": {
              "contractScope": null,
              "id": 3181,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4281,
              "src": "288:8:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$4281",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "282:24:14",
            "typeName": {
              "id": 3182,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "301:4:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "body": {
              "id": 3215,
              "nodeType": "Block",
              "src": "515:95:14",
              "statements": [
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3209,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6109,
                            "src": "589:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3210,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "589:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3211,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3197,
                          "src": "601:1:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 3206,
                          "name": "super",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6193,
                          "src": "577:5:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_super$_DummyERC721Token_$3217",
                            "typeString": "contract super DummyERC721Token"
                          }
                        },
                        "id": 3208,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_mint",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6014,
                        "src": "577:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256)"
                        }
                      },
                      "id": 3212,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "577:26:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 3213,
                    "nodeType": "ExpressionStatement",
                    "src": "577:26:14"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3202,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3200,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3197,
                      "src": "542:1:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3201,
                      "name": "_tokenNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3185,
                      "src": "546:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "542:16:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3214,
                  "initializationExpression": {
                    "assignments": [
                      3197
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3197,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3216,
                        "src": "530:6:14",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3196,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "530:4:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3199,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3198,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "539:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "530:10:14"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3204,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "560:3:14",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3203,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3197,
                        "src": "560:1:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3205,
                    "nodeType": "ExpressionStatement",
                    "src": "560:3:14"
                  },
                  "nodeType": "ForStatement",
                  "src": "525:78:14"
                }
              ]
            },
            "documentation": null,
            "id": 3216,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3192,
                    "name": "_name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3187,
                    "src": "499:5:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 3193,
                    "name": "_symbol",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3189,
                    "src": "506:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 3194,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3191,
                  "name": "ERC721Token",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6094,
                  "src": "487:11:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_ERC721Token_$6094_$",
                    "typeString": "type(contract ERC721Token)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "487:27:14"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3190,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3185,
                  "name": "_tokenNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 3216,
                  "src": "427:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3184,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "427:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3187,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3216,
                  "src": "446:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3186,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "446:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3189,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 3216,
                  "src": "460:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3188,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "460:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "426:49:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 3195,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "515:0:14"
            },
            "scope": 3217,
            "src": "415:195:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3218,
        "src": "235:377:14"
      }
    ],
    "src": "0:613:14"
  },
  "legacyAST": {
    "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/Examples/DummyERC721Token.sol",
    "exportedSymbols": {
      "DummyERC721Token": [
        3217
      ]
    },
    "id": 3218,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3177,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:14"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC721/ERC721Token.sol",
        "id": 3178,
        "nodeType": "ImportDirective",
        "scope": 3218,
        "sourceUnit": 6095,
        "src": "26:70:14",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3179,
              "name": "ERC721Token",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6094,
              "src": "264:11:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC721Token_$6094",
                "typeString": "contract ERC721Token"
              }
            },
            "id": 3180,
            "nodeType": "InheritanceSpecifier",
            "src": "264:11:14"
          }
        ],
        "contractDependencies": [
          4989,
          5009,
          5016,
          5123,
          5707,
          6094
        ],
        "contractKind": "contract",
        "documentation": "@title MintableNonFungibleToken\n * Superset of the ERC721 standard that allows for the minting\nof non-fungible tokens.",
        "fullyImplemented": true,
        "id": 3217,
        "linearizedBaseContracts": [
          3217,
          6094,
          5707,
          5016,
          5009,
          4989,
          5123
        ],
        "name": "DummyERC721Token",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3183,
            "libraryName": {
              "contractScope": null,
              "id": 3181,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4281,
              "src": "288:8:14",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$4281",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "282:24:14",
            "typeName": {
              "id": 3182,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "301:4:14",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "body": {
              "id": 3215,
              "nodeType": "Block",
              "src": "515:95:14",
              "statements": [
                {
                  "body": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3209,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6109,
                            "src": "589:3:14",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3210,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "589:10:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3211,
                          "name": "i",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3197,
                          "src": "601:1:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 3206,
                          "name": "super",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6193,
                          "src": "577:5:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_super$_DummyERC721Token_$3217",
                            "typeString": "contract super DummyERC721Token"
                          }
                        },
                        "id": 3208,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_mint",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6014,
                        "src": "577:11:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                          "typeString": "function (address,uint256)"
                        }
                      },
                      "id": 3212,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "577:26:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 3213,
                    "nodeType": "ExpressionStatement",
                    "src": "577:26:14"
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3202,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3200,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3197,
                      "src": "542:1:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3201,
                      "name": "_tokenNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3185,
                      "src": "546:12:14",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "542:16:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3214,
                  "initializationExpression": {
                    "assignments": [
                      3197
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3197,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3216,
                        "src": "530:6:14",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3196,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "530:4:14",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3199,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3198,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "539:1:14",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "530:10:14"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3204,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "560:3:14",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3203,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3197,
                        "src": "560:1:14",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3205,
                    "nodeType": "ExpressionStatement",
                    "src": "560:3:14"
                  },
                  "nodeType": "ForStatement",
                  "src": "525:78:14"
                }
              ]
            },
            "documentation": null,
            "id": 3216,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3192,
                    "name": "_name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3187,
                    "src": "499:5:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "id": 3193,
                    "name": "_symbol",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3189,
                    "src": "506:7:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 3194,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3191,
                  "name": "ERC721Token",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 6094,
                  "src": "487:11:14",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_ERC721Token_$6094_$",
                    "typeString": "type(contract ERC721Token)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "487:27:14"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3190,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3185,
                  "name": "_tokenNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 3216,
                  "src": "427:17:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3184,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "427:4:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3187,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3216,
                  "src": "446:12:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3186,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "446:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3189,
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 3216,
                  "src": "460:14:14",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3188,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "460:6:14",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "426:49:14"
            },
            "payable": false,
            "returnParameters": {
              "id": 3195,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "515:0:14"
            },
            "scope": 3217,
            "src": "415:195:14",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3218,
        "src": "235:377:14"
      }
    ],
    "src": "0:613:14"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-11-01T18:10:50.806Z"
}