diff --git a/blockchain/.solcover.js b/blockchain/.solcover.js index 9cc96d22..8afe9bcd 100644 --- a/blockchain/.solcover.js +++ b/blockchain/.solcover.js @@ -2,4 +2,5 @@ module.exports = { testrpcOptions: '-p 8555 --mnemonic "toddler weather rocket off sentence chat unlock flame organ shuffle treat awful"', compileCommand: '../node_modules/.bin/truffle compile', testCommand: '../node_modules/.bin/truffle test --network coverage', + skipFiles: ['ERC20.sol', 'TestERC20.sol'], }; diff --git a/blockchain/build/contracts/ProofOfPhysicalAddress.json b/blockchain/build/contracts/ProofOfPhysicalAddress.json index b5205300..aebe7309 100644 --- a/blockchain/build/contracts/ProofOfPhysicalAddress.json +++ b/blockchain/build/contracts/ProofOfPhysicalAddress.json @@ -190,6 +190,28 @@ "name": "LogAddressConfirmed", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "token", + "type": "address" + }, + { + "indexed": false, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "LogClaimedTokens", + "type": "event" + }, { "constant": true, "inputs": [ @@ -427,6 +449,37 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "wallet", + "type": "address" + }, + { + "name": "keccakIdentifier", + "type": "bytes32" + } + ], + "name": "userAddressByKeccakIdentifier", + "outputs": [ + { + "name": "", + "type": "bool" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -686,20 +739,38 @@ "payable": false, "stateMutability": "nonpayable", "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + }, + { + "name": "_to", + "type": "address" + } + ], + "name": "claimTokens", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" } ], - "bytecode": "0x6060604052341561000f57600080fd5b60405160208061429e83398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506141808061011e6000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101595780630e666e49146101c5578063238ac933146102165780632c2a178e1461026b5780634028a0f1146104485780636c19e783146104855780637b103999146104be578063853828b6146105135780638da5cb5b14610528578063a5db3d021461057d578063a87430ba14610600578063a91ee0dc1461064d578063ae9b051c14610686578063b4778e2d146106a9578063b55fbd0414610914578063bff1f9e1146109c6578063c0fe077f14610a03578063c228251b14610a82578063c94f2c1b14610beb578063cfad527714610c38578063d673560414610c75578063d956be1014610d27578063de3d702e14610d8c578063e585332e14610dd9578063f0486ab414610f8b578063feea980814610fe5575b600080fd5b341561016457600080fd5b610199600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110bd565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101d057600080fd5b6101fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111cf565b604051808215151515815260200191505060405180910390f35b341561022157600080fd5b61022961121d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610446600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611243565b005b341561045357600080fd5b61045b611a0f565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049057600080fd5b6104bc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a29565b005b34156104c957600080fd5b6104d1611b2b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051e57600080fd5b610526611b51565b005b341561053357600080fd5b61053b611c4c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058857600080fd5b6105fe600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611c71565b005b341561060b57600080fd5b610637600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612014565b6040518082815260200191505060405180910390f35b341561065857600080fd5b610684600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612032565b005b341561069157600080fd5b6106a76004808035906020019091905050612134565b005b34156106b457600080fd5b6106e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612219565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561079f578082015181840152602081019050610784565b50505050905090810190601f1680156107cc5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561086b578082015181840152602081019050610850565b50505050905090810190601f1680156108985780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156108d15780820151818401526020810190506108b6565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612757565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098b578082015181840152602081019050610970565b50505050905090810190601f1680156109b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109d157600080fd5b6109d9612900565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a0e57600080fd5b610a47600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505061291a565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610a8d57600080fd5b610be9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612aa4565b005b3415610bf657600080fd5b610c22600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506130d6565b6040518082815260200191505060405180910390f35b3415610c4357600080fd5b610c4b61315d565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610c8057600080fd5b610cac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613177565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cec578082015181840152602081019050610cd1565b50505050905090810190601f168015610d195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d3257600080fd5b610d7260048080356000191690602001909190803560ff1690602001909190803560001916906020019091908035600019169060200190919050506132dd565b604051808215151515815260200191505060405180910390f35b3415610d9757600080fd5b610dc3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613479565b6040518082815260200191505060405180910390f35b3415610de457600080fd5b610f5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506134c8565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610f9657600080fd5b610fcb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506137a3565b604051808215151515815260200191505060405180910390f35b3415610ff057600080fd5b611025600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506139fe565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561107f578082015181840152602081019050611064565b50505050905090810190601f1680156110ac5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b600080600080856110cd816111cf565b15156110d857600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156111b75785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561117a57fe5b90600052602060002090600902016006015414156111aa5760018261119f89856137a3565b9450945094506111c6565b81806001019250506110dd565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061124e613e0e565b60008e5111151561125e57600080fd5b60008d5111151561126e57600080fd5b60008c5111151561127e57600080fd5b60008b5111151561128e57600080fd5b60008a5111151561129e57600080fd5b600089511115156112ae57600080fd5b8734101515156112bd57600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561133c5780518252602082019150602081019050602083039250611317565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561138f578051825260208201915060208101905060208303925061136a565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156113e257805182526020820191506020810190506020830392506113bd565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b6020831015156114355780518252602082019150602081019050602083039250611410565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156114885780518252602082019150602081019050602083039250611463565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156114db57805182526020820191506020810190506020830392506114b6565b6001836020036101000a0380198251168184511680821785525050505050509050018381526020018260001916600019168152602001995050505050505050505060405180910390209250611532838787876132dd565b151561153d57600080fd5b611546336111cf565b1561157257611559338e8e8e8e8e6134c8565b905050809250508115151561156d57600080fd5b6115fd565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b60208310151561168c5780518252602082019150602081019050602083039250611667565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156116df57805182526020820191506020810190506020830392506116ba565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611732578051825260208201915060208101905060208303925061170d565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156117855780518252602082019150602081019050602083039250611760565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156117d857805182526020820191506020810190506020830392506117b3565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816118709190613e85565b9160005260206000209060090201600083909190915060008201518160000190805190602001906118a2929190613eb7565b5060208201518160010190805190602001906118bf929190613eb7565b5060408201518160020190805190602001906118dc929190613eb7565b5060608201518160030190805190602001906118f9929190613eb7565b506080820151816004019080519060200190611916929190613eb7565b5060a0820151816005019080519060200190611933929190613eb7565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fe7c91dadc713049bfb35a5b137524bc4546369091366d48bb185433127b9f26b8260e0015160405180826000191660001916815260200191505060405180910390a25050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a8457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fee87a28570c895f7da676d522308fff544b84e34ac47fcb36b53f5ef848e5e3281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bac57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611bd257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611c4a57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033611c83816111cf565b1515611c8e57600080fd5b60008a51111515611c9e57600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611d165780518252602082019150602081019050602083039250611cf1565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209550611d52868a8a8a6132dd565b1515611d5d57600080fd5b611dc9338b6040518082805190602001908083835b602083101515611d975780518252602082019150602081019050602083039250611d72565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902061291a565b80955081965082975083985050505050841515611de557600080fd5b82151515611df257600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1515611ea557600080fd5b6102c65a03f41515611eb657600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b1515611f5b57600080fd5b6102c65a03f11515611f6c57600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fcb5c5ab258abc7b8cafdc09ca97a09fa4d98a46a9a83f0462061e78fcb198cb98360405180826000191660001916815260200191505060405180910390a250505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208d57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffd9ec64cd3990d58d48617f2750d82ea8ea105c84989b7f77c5242178ba4aeb81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561218f57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101515156121b557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561221657600080fd5b50565b612221613f37565b612229613f37565b612231613f37565b612239613f37565b612241613f37565b8661224b816111cf565b151561225657600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101878154811015156122a557fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018881548110151561230557fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018981548110151561236557fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156123c557fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b81548110151561242557fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124cb5780601f106124a0576101008083540402835291602001916124cb565b820191906000526020600020905b8154815290600101906020018083116124ae57829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125675780601f1061253c57610100808354040283529160200191612567565b820191906000526020600020905b81548152906001019060200180831161254a57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126035780601f106125d857610100808354040283529160200191612603565b820191906000526020600020905b8154815290600101906020018083116125e657829003601f168201915b50505050509250818054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561269f5780601f106126745761010080835404028352916020019161269f565b820191906000526020600020905b81548152906001019060200180831161268257829003601f168201915b50505050509150808054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561273b5780601f106127105761010080835404028352916020019161273b565b820191906000526020600020905b81548152906001019060200180831161271e57829003601f168201915b5050505050905095509550955095509550509295509295909350565b61275f613f37565b60008261276b816111cf565b151561277657600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b60008211156128e5578180600190039250506127db84836137a3565b156128e057600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561282f57fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128d45780601f106128a9576101008083540402835291602001916128d4565b820191906000526020600020905b8154815290600101906020018083116128b757829003601f168201915b505050505092506128f9565b6127bf565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b60008060008060008661292c816111cf565b151561293757600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015612a81578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101838154811015156129dd57fe5b906000526020600020906009020160080154600019161415612a7457600182612a068a856137a3565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010185815481101515612a5557fe5b9060005260206000209060090201600701549550955095509550612a99565b818060010192505061293c565b60008060008082925080600102905095509550955095505b505092959194509250565b600080600080600033612ab6816111cf565b1515612ac157600080fd5b612acf338c8c8c8c8c6134c8565b508096508197505050851515612ae457600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010185815481101515612b3357fe5b9060005260206000209060090201600701549350600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033876040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612c4757600080fd5b6102c65a03f11515612c5857600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508491505b60018303821015612e9957600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018301815481101515612d0457fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612d6157fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612d96929190613f4b565b5060018201816001019080546001816001161561010002031660029004612dbe929190613f4b565b5060028201816002019080546001816001161561010002031660029004612de6929190613f4b565b5060038201816003019080546001816001161561010002031660029004612e0e929190613f4b565b5060048201816004019080546001816001161561010002031660029004612e36929190613f4b565b5060058201816005019080546001816001161561010002031660029004612e5e929190613f4b565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508180600101925050612ca7565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018403815481101515612eeb57fe5b906000526020600020906009020160008082016000612f0a9190613fd2565b600182016000612f1a9190613fd2565b600282016000612f2a9190613fd2565b600382016000612f3a9190613fd2565b600482016000612f4a9190613fd2565b600582016000612f5a9190613fd2565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612fc9919061401a565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050141561307357600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000613070919061404c565b50505b3373ffffffffffffffffffffffffffffffffffffffff167ff205ce75791437944181c7d5b0da9fc3f03171ae90ec93e4dc4f3ddf2982eb018560405180826000191660001916815260200191505060405180910390a25050505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156131535761313a84826137a3565b15613146576001820191505b80806001019150506130e3565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b61317f613f37565b81613189816111cf565b151561319457600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561322b57fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d05780601f106132a5576101008083540402835291602001916132d0565b820191906000526020600020905b8154815290600101906020018083116132b357829003601f168201915b5050505050915050919050565b60006132e7614070565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156133585780518252602082019150602081019050602083039250613333565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561344d57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060008a6134da816111cf565b15156134e557600080fd5b8a8a8a8a8a6040518086805190602001908083835b60208310151561351f57805182526020820191506020810190506020830392506134fa565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515613572578051825260208201915060208101905060208303925061354d565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156135c557805182526020820191506020810190506020830392506135a0565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b60208310151561361857805182526020820191506020810190506020830392506135f3565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310151561366b5780518252602082019150602081019050602083039250613646565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209250600091505b600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015613785578260001916600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561374457fe5b9060005260206000209060090201600701546000191614156137785760018261376d8e856137a3565b955095509550613794565b81806001019250506136a3565b60008060008191509550955095505b50505096509650969350505050565b600080836137b0816111cf565b15156137bb57600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561380a57fe5b906000526020600020906009020160070154915060006001028260001916141561383757600092506139f6565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b151561395c57600080fd5b6102c65a03f1151561396d57600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b15156139d757600080fd5b6102c65a03f415156139e857600080fd5b505050604051805190501192505b505092915050565b613a06613f37565b60008060008086613a16816111cf565b1515613a2157600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d815481101515613aca57fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613ba457600080fd5b6102c65a03f11515613bb557600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613c1f57600080fd5b6102c65a03f41515613c3057600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515613c8b57fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613ceb57fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613d4d57fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613df45780601f10613dc957610100808354040283529160200191613df4565b820191906000526020600020905b815481529060010190602001808311613dd757829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280613e23614084565b8152602001613e30614084565b8152602001613e3d614084565b8152602001613e4a614084565b8152602001613e57614084565b8152602001613e64614084565b81526020016000815260200160008019168152602001600080191681525090565b815481835581811511613eb257600902816009028360005260206000209182019101613eb19190614098565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ef857805160ff1916838001178555613f26565b82800160010185558215613f26579182015b82811115613f25578251825591602001919060010190613f0a565b5b509050613f33919061412f565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613f845780548555613fc1565b82800160010185558215613fc157600052602060002091601f016020900482015b82811115613fc0578254825591600101919060010190613fa5565b5b509050613fce919061412f565b5090565b50805460018160011615610100020316600290046000825580601f10613ff85750614017565b601f016020900490600052602060002090810190614016919061412f565b5b50565b815481835581811511614047576009028160090283600052602060002091820191016140469190614098565b5b505050565b508054600082556009029060005260206000209081019061406d9190614098565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b61412c91905b8082111561412857600080820160006140b79190613fd2565b6001820160006140c79190613fd2565b6002820160006140d79190613fd2565b6003820160006140e79190613fd2565b6004820160006140f79190613fd2565b6005820160006141079190613fd2565b6006820160009055600782016000905560088201600090555060090161409e565b5090565b90565b61415191905b8082111561414d576000816000905550600101614135565b5090565b905600a165627a7a72305820a1361d3cb10a5d78e659759b928c5e5a3ed9b4cd623f69f611afbec30237e49b0029", - "deployedBytecode": "0x606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305831776146101595780630e666e49146101c5578063238ac933146102165780632c2a178e1461026b5780634028a0f1146104485780636c19e783146104855780637b103999146104be578063853828b6146105135780638da5cb5b14610528578063a5db3d021461057d578063a87430ba14610600578063a91ee0dc1461064d578063ae9b051c14610686578063b4778e2d146106a9578063b55fbd0414610914578063bff1f9e1146109c6578063c0fe077f14610a03578063c228251b14610a82578063c94f2c1b14610beb578063cfad527714610c38578063d673560414610c75578063d956be1014610d27578063de3d702e14610d8c578063e585332e14610dd9578063f0486ab414610f8b578063feea980814610fe5575b600080fd5b341561016457600080fd5b610199600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506110bd565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101d057600080fd5b6101fc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111cf565b604051808215151515815260200191505060405180910390f35b341561022157600080fd5b61022961121d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610446600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611243565b005b341561045357600080fd5b61045b611a0f565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b341561049057600080fd5b6104bc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a29565b005b34156104c957600080fd5b6104d1611b2b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561051e57600080fd5b610526611b51565b005b341561053357600080fd5b61053b611c4c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058857600080fd5b6105fe600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611c71565b005b341561060b57600080fd5b610637600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612014565b6040518082815260200191505060405180910390f35b341561065857600080fd5b610684600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612032565b005b341561069157600080fd5b6106a76004808035906020019091905050612134565b005b34156106b457600080fd5b6106e9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612219565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b8381101561073957808201518184015260208101905061071e565b50505050905090810190601f1680156107665780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561079f578082015181840152602081019050610784565b50505050905090810190601f1680156107cc5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108055780820151818401526020810190506107ea565b50505050905090810190601f1680156108325780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561086b578082015181840152602081019050610850565b50505050905090810190601f1680156108985780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156108d15780820151818401526020810190506108b6565b50505050905090810190601f1680156108fe5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561091f57600080fd5b61094b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612757565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098b578082015181840152602081019050610970565b50505050905090810190601f1680156109b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109d157600080fd5b6109d9612900565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610a0e57600080fd5b610a47600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505061291a565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610a8d57600080fd5b610be9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612aa4565b005b3415610bf657600080fd5b610c22600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506130d6565b6040518082815260200191505060405180910390f35b3415610c4357600080fd5b610c4b61315d565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610c8057600080fd5b610cac600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613177565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cec578082015181840152602081019050610cd1565b50505050905090810190601f168015610d195780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610d3257600080fd5b610d7260048080356000191690602001909190803560ff1690602001909190803560001916906020019091908035600019169060200190919050506132dd565b604051808215151515815260200191505060405180910390f35b3415610d9757600080fd5b610dc3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613479565b6040518082815260200191505060405180910390f35b3415610de457600080fd5b610f5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506134c8565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b3415610f9657600080fd5b610fcb600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506137a3565b604051808215151515815260200191505060405180910390f35b3415610ff057600080fd5b611025600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506139fe565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561107f578082015181840152602081019050611064565b50505050905090810190601f1680156110ac5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b600080600080856110cd816111cf565b15156110d857600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156111b75785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561117a57fe5b90600052602060002090600902016006015414156111aa5760018261119f89856137a3565b9450945094506111c6565b81806001019250506110dd565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061124e613e0e565b60008e5111151561125e57600080fd5b60008d5111151561126e57600080fd5b60008c5111151561127e57600080fd5b60008b5111151561128e57600080fd5b60008a5111151561129e57600080fd5b600089511115156112ae57600080fd5b8734101515156112bd57600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561133c5780518252602082019150602081019050602083039250611317565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561138f578051825260208201915060208101905060208303925061136a565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156113e257805182526020820191506020810190506020830392506113bd565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b6020831015156114355780518252602082019150602081019050602083039250611410565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156114885780518252602082019150602081019050602083039250611463565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156114db57805182526020820191506020810190506020830392506114b6565b6001836020036101000a0380198251168184511680821785525050505050509050018381526020018260001916600019168152602001995050505050505050505060405180910390209250611532838787876132dd565b151561153d57600080fd5b611546336111cf565b1561157257611559338e8e8e8e8e6134c8565b905050809250508115151561156d57600080fd5b6115fd565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b60208310151561168c5780518252602082019150602081019050602083039250611667565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156116df57805182526020820191506020810190506020830392506116ba565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515611732578051825260208201915060208101905060208303925061170d565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b6020831015156117855780518252602082019150602081019050602083039250611760565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156117d857805182526020820191506020810190506020830392506117b3565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816118709190613e85565b9160005260206000209060090201600083909190915060008201518160000190805190602001906118a2929190613eb7565b5060208201518160010190805190602001906118bf929190613eb7565b5060408201518160020190805190602001906118dc929190613eb7565b5060608201518160030190805190602001906118f9929190613eb7565b506080820151816004019080519060200190611916929190613eb7565b5060a0820151816005019080519060200190611933929190613eb7565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fe7c91dadc713049bfb35a5b137524bc4546369091366d48bb185433127b9f26b8260e0015160405180826000191660001916815260200191505060405180910390a25050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a8457600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fee87a28570c895f7da676d522308fff544b84e34ac47fcb36b53f5ef848e5e3281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bac57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611bd257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611c4a57600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033611c83816111cf565b1515611c8e57600080fd5b60008a51111515611c9e57600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b602083101515611d165780518252602082019150602081019050602083039250611cf1565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405180910390209550611d52868a8a8a6132dd565b1515611d5d57600080fd5b611dc9338b6040518082805190602001908083835b602083101515611d975780518252602082019150602081019050602083039250611d72565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902061291a565b80955081965082975083985050505050841515611de557600080fd5b82151515611df257600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b1515611ea557600080fd5b6102c65a03f41515611eb657600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b1515611f5b57600080fd5b6102c65a03f11515611f6c57600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fcb5c5ab258abc7b8cafdc09ca97a09fa4d98a46a9a83f0462061e78fcb198cb98360405180826000191660001916815260200191505060405180910390a250505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208d57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffd9ec64cd3990d58d48617f2750d82ea8ea105c84989b7f77c5242178ba4aeb81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561218f57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101515156121b557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561221657600080fd5b50565b612221613f37565b612229613f37565b612231613f37565b612239613f37565b612241613f37565b8661224b816111cf565b151561225657600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101878154811015156122a557fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018881548110151561230557fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018981548110151561236557fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156123c557fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b81548110151561242557fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124cb5780601f106124a0576101008083540402835291602001916124cb565b820191906000526020600020905b8154815290600101906020018083116124ae57829003601f168201915b50505050509450838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125675780601f1061253c57610100808354040283529160200191612567565b820191906000526020600020905b81548152906001019060200180831161254a57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126035780601f106125d857610100808354040283529160200191612603565b820191906000526020600020905b8154815290600101906020018083116125e657829003601f168201915b50505050509250818054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561269f5780601f106126745761010080835404028352916020019161269f565b820191906000526020600020905b81548152906001019060200180831161268257829003601f168201915b50505050509150808054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561273b5780601f106127105761010080835404028352916020019161273b565b820191906000526020600020905b81548152906001019060200180831161271e57829003601f168201915b5050505050905095509550955095509550509295509295909350565b61275f613f37565b60008261276b816111cf565b151561277657600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b60008211156128e5578180600190039250506127db84836137a3565b156128e057600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561282f57fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156128d45780601f106128a9576101008083540402835291602001916128d4565b820191906000526020600020905b8154815290600101906020018083116128b757829003601f168201915b505050505092506128f9565b6127bf565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b60008060008060008661292c816111cf565b151561293757600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015612a81578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101838154811015156129dd57fe5b906000526020600020906009020160080154600019161415612a7457600182612a068a856137a3565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010185815481101515612a5557fe5b9060005260206000209060090201600701549550955095509550612a99565b818060010192505061293c565b60008060008082925080600102905095509550955095505b505092959194509250565b600080600080600033612ab6816111cf565b1515612ac157600080fd5b612acf338c8c8c8c8c6134c8565b508096508197505050851515612ae457600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010185815481101515612b3357fe5b9060005260206000209060090201600701549350600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033876040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1515612c4757600080fd5b6102c65a03f11515612c5857600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508491505b60018303821015612e9957600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018301815481101515612d0457fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612d6157fe5b906000526020600020906009020160008201816000019080546001816001161561010002031660029004612d96929190613f4b565b5060018201816001019080546001816001161561010002031660029004612dbe929190613f4b565b5060028201816002019080546001816001161561010002031660029004612de6929190613f4b565b5060038201816003019080546001816001161561010002031660029004612e0e929190613f4b565b5060048201816004019080546001816001161561010002031660029004612e36929190613f4b565b5060058201816005019080546001816001161561010002031660029004612e5e929190613f4b565b506006820154816006015560078201548160070190600019169055600882015481600801906000191690559050508180600101925050612ca7565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160018403815481101515612eeb57fe5b906000526020600020906009020160008082016000612f0a9190613fd2565b600182016000612f1a9190613fd2565b600282016000612f2a9190613fd2565b600382016000612f3a9190613fd2565b600482016000612f4a9190613fd2565b600582016000612f5a9190613fd2565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480919060019003612fc9919061401a565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050141561307357600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000613070919061404c565b50505b3373ffffffffffffffffffffffffffffffffffffffff167ff205ce75791437944181c7d5b0da9fc3f03171ae90ec93e4dc4f3ddf2982eb018560405180826000191660001916815260200191505060405180910390a25050505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156131535761313a84826137a3565b15613146576001820191505b80806001019150506130e3565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b61317f613f37565b81613189816111cf565b151561319457600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561322b57fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132d05780601f106132a5576101008083540402835291602001916132d0565b820191906000526020600020905b8154815290600101906020018083116132b357829003601f168201915b5050505050915050919050565b60006132e7614070565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156133585780518252602082019150602081019050602083039250613333565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561344d57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b60008060008060008a6134da816111cf565b15156134e557600080fd5b8a8a8a8a8a6040518086805190602001908083835b60208310151561351f57805182526020820191506020810190506020830392506134fa565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515613572578051825260208201915060208101905060208303925061354d565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156135c557805182526020820191506020810190506020830392506135a0565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b60208310151561361857805182526020820191506020810190506020830392506135f3565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310151561366b5780518252602082019150602081019050602083039250613646565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209250600091505b600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015613785578260001916600360008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561374457fe5b9060005260206000209060090201600701546000191614156137785760018261376d8e856137a3565b955095509550613794565b81806001019250506136a3565b60008060008191509550955095505b50505096509650969350505050565b600080836137b0816111cf565b15156137bb57600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561380a57fe5b906000526020600020906009020160070154915060006001028260001916141561383757600092506139f6565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b151561395c57600080fd5b6102c65a03f1151561396d57600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b15156139d757600080fd5b6102c65a03f415156139e857600080fd5b505050604051805190501192505b505092915050565b613a06613f37565b60008060008086613a16816111cf565b1515613a2157600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d815481101515613aca57fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613ba457600080fd5b6102c65a03f11515613bb557600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613c1f57600080fd5b6102c65a03f41515613c3057600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515613c8b57fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010188815481101515613ceb57fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a815481101515613d4d57fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613df45780601f10613dc957610100808354040283529160200191613df4565b820191906000526020600020905b815481529060010190602001808311613dd757829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280613e23614084565b8152602001613e30614084565b8152602001613e3d614084565b8152602001613e4a614084565b8152602001613e57614084565b8152602001613e64614084565b81526020016000815260200160008019168152602001600080191681525090565b815481835581811511613eb257600902816009028360005260206000209182019101613eb19190614098565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613ef857805160ff1916838001178555613f26565b82800160010185558215613f26579182015b82811115613f25578251825591602001919060010190613f0a565b5b509050613f33919061412f565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613f845780548555613fc1565b82800160010185558215613fc157600052602060002091601f016020900482015b82811115613fc0578254825591600101919060010190613fa5565b5b509050613fce919061412f565b5090565b50805460018160011615610100020316600290046000825580601f10613ff85750614017565b601f016020900490600052602060002090810190614016919061412f565b5b50565b815481835581811511614047576009028160090283600052602060002091820191016140469190614098565b5b505050565b508054600082556009029060005260206000209081019061406d9190614098565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b61412c91905b8082111561412857600080820160006140b79190613fd2565b6001820160006140c79190613fd2565b6002820160006140d79190613fd2565b6003820160006140e79190613fd2565b6004820160006140f79190613fd2565b6005820160006141079190613fd2565b6006820160009055600782016000905560088201600090555060090161409e565b5090565b90565b61415191905b8082111561414d576000816000905550600101614135565b5090565b905600a165627a7a72305820a1361d3cb10a5d78e659759b928c5e5a3ed9b4cd623f69f611afbec30237e49b0029", - "sourceMap": "149:11731:4:-;;;592:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;672:10;664:5;;:18;;;;;;;;;;;;;;;;;;701:5;;;;;;;;;;;692:6;;:14;;;;;;;;;;;;;;;;;;759:9;716:8;;:53;;;;;;;;;;;;;;;;;;592:184;149:11731;;;;;;", - "deployedSourceMap": "149:11731:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3426:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2759:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;213:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8139:1758;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1007:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2048:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;240:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2607:146;;;;;;;;;;;;;;187:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11015:863;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2181:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;2406:161;;;;;;;;;;;;;;;;;;;;;;;;;;6796:558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:374:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;943:24:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3976:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9903:1106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6465:325;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;973:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5409:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1623:289:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6200:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4765:586;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2897:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7360:752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3426:455:4;3554:4;3560:7;3569:4;3594:10;3537:6;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;3607:1;3594:14;;3589:252;3615:5;:13;3621:6;3615:13;;;;;;;;;;;;;;;:31;;:38;;;;3610:2;:43;3589:252;;;3732:13;3679:5;:13;3685:6;3679:13;;;;;;;;;;;;;;;:31;;3711:2;3679:35;;;;;;;;;;;;;;;;;;;;:49;;;:66;3675:156;;;3773:4;3779:2;3783:32;3804:6;3812:2;3783:20;:32::i;:::-;3765:51;;;;;;;;3675:156;3655:4;;;;;;;3589:252;;;3858:5;3865:1;3868:5;3850:24;;;;;;;;;1593:1;3426:455;;;;;;;:::o;2759:132::-;2824:4;2882:1;2852:5;:13;2858:6;2852:13;;;;;;;;;;;;;;;:27;;;:31;2844:40;;2759:132;;;:::o;213:21::-;;;;;;;;;;;;;:::o;8139:1758::-;8697:12;9094:10;9383:25;;:::i;:::-;8432:1;8417:4;8411:18;:22;8403:31;;;;;;;;8476:1;8458:7;8452:21;:25;8444:34;;;;;;;;8518:1;8502:5;8496:19;:23;8488:32;;;;;;;;8559:1;8544:4;8538:18;:22;8530:31;;;;;;;;8604:1;8585:8;8579:22;:26;8571:35;;;;;;;;8644:1;8630:3;8624:17;:21;8616:30;;;;;;;;8677:8;8664:9;:21;;8656:30;;;;;;;;8735:10;8759:4;8777:7;8798:5;8817:4;8835:8;8857:3;8874:8;8896:20;8712:214;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8697:229:4;;8944:37;8958:4;8964;8970;8976;8944:13;:37::i;:::-;8936:46;;;;;;;;8997:22;9008:10;8997;:22::i;:::-;8993:380;;;9132:69;9153:10;9165:7;9174:5;9181:4;9187:8;9197:3;9132:20;:69::i;:::-;9118:83;;;;;;;9225:5;9224:6;9216:15;;;;;;;;8993:380;;;9320:12;9286:5;:17;9292:10;9286:17;;;;;;;;;;;;;;;:31;;:46;;;;9361:1;9347:10;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8993:380;9429:4;9419:2;:7;;:14;;;;9456:7;9443:2;:10;;:20;;;;9484:5;9473:2;:8;;:16;;;;9509:4;9499:2;:7;;:14;;;;9537:8;9523:2;:11;;:22;;;;9564:3;9555:2;:6;;:12;;;;9596;9577:2;:16;;:31;;;;;9644:20;9618:2;:23;;:46;;;;;;;;;;;;;9706:7;9715:5;9722:4;9728:8;9738:3;9696:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;9674:2:4;:19;;:68;;;;;;;;;;;;;9752:5;:17;9758:10;9752:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;9793:2;9752:44;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9825:1;9807:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9858:10;9837:53;;;9870:2;:19;;;9837:53;;;;;;;;;;;;;;;;;;;;;;;;8139:1758;;;;;;;;;;;;;;:::o;1007:28::-;;;;;;;;;;;;;:::o;2048:127::-;1475:5;;;;;;;;;;;1461:19;;:10;:19;;;1453:28;;;;;;;;2122:9;2113:6;;:18;;;;;;;;;;;;;;;;;;2141:27;2158:9;2141:27;;;;;;;;;;;;;;;;;;;;;;2048:127;:::o;240:47::-;;;;;;;;;;;;;:::o;2607:146::-;1475:5;;;;;;;;;;;1461:19;;:10;:19;;;1453:28;;;;;;;;2697:1;2681:4;2673:21;;;:25;2665:34;;;;;;;;2709:5;;;;;;;;;;;:14;;:37;2732:4;2724:21;;;2709:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2607:146::o;187:20::-;;;;;;;;;;;;;:::o;11015:863::-;11221:12;11381:10;11401:7;11418:14;11442:24;11136:10;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;11208:1;11176:21;11170:35;:39;11162:48;;;;;;;;11259:10;11283:21;11236:78;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;11221:93:4;;11332:37;11346:4;11352;11358;11364;11332:13;:37::i;:::-;11324:46;;;;;;;;11519:109;11562:10;11596:21;11586:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;11519:29:4;:109::i;:::-;11476:152;;;;;;;;;;;;;;;;11646:5;11638:14;;;;;;;;11671:9;11670:10;11662:19;;;;;;;;11692:8;;;;;;;;;;;:17;;;11710:10;11722:16;11740:20;:27;11768:12;11740:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11692:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11810:1;11792:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11842:10;11822:49;;;11854:16;11822:49;;;;;;;;;;;;;;;;;;;;;;;;11015:863;;;;;;;;;;:::o;883:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;2181:172::-;1475:5;;;;;;;;;;;1461:19;;:10;:19;;;1453:28;;;;;;;;2293:11;2250:8;;:55;;;;;;;;;;;;;;;;;;2315:31;2334:11;2315:31;;;;;;;;;;;;;;;;;;;;;;2181:172;:::o;2406:161::-;1475:5;;;;;;;;;;;1461:19;;:10;:19;;;1453:28;;;;;;;;2515:9;2498:4;2490:21;;;:34;;2482:43;;;;;;;;2535:5;;;;;;;;;;;:14;;:25;2550:9;2535:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2406:161;:::o;6796:558::-;6917:14;;:::i;:::-;6933:12;;:::i;:::-;6947:11;;:::i;:::-;6960:15;;:::i;:::-;6977:10;;:::i;:::-;6891:6;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;7024:5;:13;7030:6;7024:13;;;;;;;;;;;;;;;:31;;7056:12;7024:45;;;;;;;;;;;;;;;;;;;;:53;;7091:5;:13;7097:6;7091:13;;;;;;;;;;;;;;;:31;;7123:12;7091:45;;;;;;;;;;;;;;;;;;;;:51;;7156:5;:13;7162:6;7156:13;;;;;;;;;;;;;;;:31;;7188:12;7156:45;;;;;;;;;;;;;;;;;;;;:50;;7220:5;:13;7226:6;7220:13;;;;;;;;;;;;;;;:31;;7252:12;7220:45;;;;;;;;;;;;;;;;;;;;:54;;7288:5;:13;7294:6;7288:13;;;;;;;;;;;;;;;:31;;7320:12;7288:45;;;;;;;;;;;;;;;;;;;;:49;;7003:344;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6796:558;;;;;;;;;:::o;5724:374::-;5824:6;;:::i;:::-;5851:10;5807:6;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;5864:5;:13;5870:6;5864:13;;;;;;;;;;;;;;;:31;;:38;;;;5851:51;;5846:227;5909:1;5904:2;:6;5846:227;;;5927:4;;;;;;;;5949:32;5970:6;5978:2;5949:20;:32::i;:::-;5945:118;;;6008:5;:13;6014:6;6008:13;;;;;;;;;;;;;;;:31;;6040:2;6008:35;;;;;;;;;;;;;;;;;;;;:40;;6001:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5945:118;5846:227;;;6082:9;;;;;;;;;;;;;;;1593:1;5724:374;;;;;:::o;943:24::-;;;;;;;;;;;;;:::o;3976:694::-;4163:4;4169:7;4178:4;4184:7;4212:10;4139:6;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;4225:1;4212:14;;4207:418;4233:5;:13;4239:6;4233:13;;;;;;;;;;;;;;;:31;;:38;;;;4228:2;:43;4207:418;;;4357:20;4297:80;;;:5;:13;4303:6;4297:13;;;;;;;;;;;;;;;:31;;4329:2;4297:35;;;;;;;;;;;;;;;;;;;;:56;;;:80;;;;4293:322;;;4426:4;4452:2;4476:32;4497:6;4505:2;4476:20;:32::i;:::-;4530:5;:13;4536:6;4530:13;;;;;;;;;;;;;;;:31;;4562:2;4530:35;;;;;;;;;;;;;;;;;;;;:52;;;4397:203;;;;;;;;;;4293:322;4273:4;;;;;;;4207:418;;;4642:5;4649:1;4652:5;4659:3;4634:29;;;;;;;;;;;;;;;;1593:1;3976:694;;;;;;;;;:::o;9903:1106::-;10059:10;10079:13;10225:24;10488:14;10563:9;10033:10;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;10121:69;10142:10;10154:7;10163:5;10170:4;10176:8;10186:3;10121:20;:69::i;:::-;10102:88;;;;;;;;;10208:5;10200:14;;;;;;;;10252:5;:17;10258:10;10252:17;;;;;;;;;;;;;;;:35;;10288:5;10252:42;;;;;;;;;;;;;;;;;;;;:59;;;10225:86;;10321:8;;;;;;;;;;;:20;;;10363:4;10382:10;10406:16;10321:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10505:5;:17;10511:10;10505:17;;;;;;;;;;;;;;;:35;;:42;;;;10488:59;;10575:5;10563:17;;10558:151;10595:1;10586:6;:10;10582:1;:14;10558:151;;;10658:5;:17;10664:10;10658:17;;;;;;;;;;;;;;;:35;;10696:1;10694;:3;10658:40;;;;;;;;;;;;;;;;;;;;10617:5;:17;10623:10;10617:17;;;;;;;;;;;;;;;:35;;10653:1;10617:38;;;;;;;;;;;;;;;;;;;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10598:3;;;;;;;10558:151;;;10726:5;:17;10732:10;10726:17;;;;;;;;;;;;;;;:35;;10771:1;10762:6;:10;10726:47;;;;;;;;;;;;;;;;;;;;;10719:54;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10783:5;:17;10789:10;10783:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;;:::i;:::-;;10888:1;10842:5;:17;10848:10;10842:17;;;;;;;;;;;;;;;:35;;:42;;;;:47;10838:102;;;10912:5;:17;10918:10;10912:17;;;;;;;;;;;;;;;;10905:24;;;;;;;;;;;;;;:::i;:::-;;;10838:102;10973:10;10950:52;;;10985:16;10950:52;;;;;;;;;;;;;;;;;;;;;;;;9903:1106;;;;;;;;;;;:::o;6465:325::-;6547:7;6570:9;6598:10;6582:1;6570:13;;6611:1;6598:14;;6593:173;6619:5;:13;6625:6;6619:13;;;;;;;;;;;;;;;:31;;:38;;;;6614:2;:43;6593:173;;;6683:32;6704:6;6712:2;6683:20;:32::i;:::-;6679:77;;;6740:1;6735:6;;;;6679:77;6659:4;;;;;;;6593:173;;;6782:1;6775:8;;6465:325;;;;;:::o;973:28::-;;;;;;;;;;;;;:::o;5409:214::-;5509:6;;:::i;:::-;5492;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;5538:5;:13;5544:6;5538:13;;;;;;;;;;;;;;;:31;;5609:1;5570:5;:13;5576:6;5570:13;;;;;;;;;;;;;;;:31;;:38;;;;:40;5538:73;;;;;;;;;;;;;;;;;;;;:78;;5531:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5409:214;;;;:::o;1623:289::-;1720:4;1740:19;;:::i;:::-;1806:16;1740:56;;;;;;;;;;;;;;;;;;;;1835:6;1843:4;1825:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1806:42:4;;1898:6;;;;;;;;;;;1866:38;;:28;1876:8;1886:1;1889;1892;1866:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1858:47;;1623:289;;;;;;;;:::o;6200:157::-;6282:7;6312:5;:13;6318:6;6312:13;;;;;;;;;;;;;;;:31;;:38;;;;6305:45;;6200:157;;;:::o;4765:586::-;4935:4;4941:7;4950:4;4970:24;5058:10;4919:6;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;5007:7;5016:5;5023:4;5029:8;5039:3;4997:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;4970:73:4;;5071:1;5058:14;;5053:258;5079:5;:13;5085:6;5079:13;;;;;;;;;;;;;;;:31;;:38;;;;5074:2;:43;5053:258;;;5199:16;5143:72;;;:5;:13;5149:6;5143:13;;;;;;;;;;;;;;;:31;;5175:2;5143:35;;;;;;;;;;;;;;;;;;;;:52;;;:72;;;;5139:162;;;5243:4;5249:2;5253:32;5274:6;5282:2;5253:20;:32::i;:::-;5235:51;;;;;;;;5139:162;5119:4;;;;;;;5053:258;;;5328:5;5335:1;5338:5;5320:24;;;;;;;;;1593:1;4765:586;;;;;;;;;;;;;:::o;2897:434::-;3018:4;3038:24;3001:6;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;3065:5;:13;3071:6;3065:13;;;;;;;;;;;;;;;:31;;3097:12;3065:45;;;;;;;;;;;;;;;;;;;;:62;;;3038:89;;3162:3;3142:23;;:16;:23;;;;3138:66;;;3188:5;3181:12;;;;3138:66;3323:1;3221:20;:39;3261:8;;;;;;;;;;;:17;;;3287:4;3294:6;3302:16;3261:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3221:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:103;3214:110;;1593:1;2897:434;;;;;;:::o;7360:752::-;7485:11;;:::i;:::-;7506:21;7537:25;7572:24;7613:26;7459:6;1564:18;1575:6;1564:10;:18::i;:::-;1556:27;;;;;;;;7642:20;:39;7682:8;;;;;;;;;;;:17;;;7721:4;7740:6;7760:5;:13;7766:6;7760:13;;;;;;;;;;;;;;;:31;;7792:12;7760:45;;;;;;;;;;;;;;;;;;;;:62;;;7682:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7613:220;;7864:5;:13;7870:6;7864:13;;;;;;;;;;;;;;;:31;;7896:12;7864:45;;;;;;;;;;;;;;;;;;;;:50;;7928:5;:13;7934:6;7928:13;;;;;;;;;;;;;;;:31;;7960:12;7928:45;;;;;;;;;;;;;;;;;;;;:59;;;8001:18;8033:5;:13;8039:6;8033:13;;;;;;;;;;;;;;;:31;;8065:12;8033:45;;;;;;;;;;;;;;;;;;;;:62;;;7843:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7360:752;;;;;;;;;:::o;149:11731::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.19;\n\nimport \"./EthereumClaimsRegistryInterface.sol\";\nimport \"./PhysicalAddressClaim.sol\";\n\n\n// Checks -> Effects -> Interactions\ncontract ProofOfPhysicalAddress {\n address public owner;\n address public signer;\n EthereumClaimsRegistryInterface public registry;\n\n // Main structures:\n struct PhysicalAddress {\n string name;\n\n string country;\n string state;\n string city;\n string location;\n string zip;\n\n uint256 creationBlock;\n bytes32 keccakIdentifier;\n bytes32 confirmationCodeSha3;\n }\n\n function ProofOfPhysicalAddress(address _registry) public\n {\n owner = msg.sender;\n signer = owner;\n registry = EthereumClaimsRegistryInterface(_registry);\n }\n\n struct User {\n uint256 creationBlock;\n PhysicalAddress[] physicalAddresses;\n }\n\n mapping (address => User) public users;\n\n // Stats:\n\n uint64 public totalUsers;\n uint64 public totalAddresses;\n uint64 public totalConfirmed;\n\n // Events:\n\n event LogSignerChanged(address newSigner);\n event LogRegistryChanged(address newRegistry);\n event LogAddressRegistered(address indexed wallet, bytes32 keccakIdentifier);\n event LogAddressUnregistered(address indexed wallet, bytes32 keccakIdentifier);\n event LogAddressConfirmed(address indexed wallet, bytes32 keccakIdentifier);\n\n // Modifiers:\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n modifier checkUserExists(address wallet) {\n require(userExists(wallet));\n _;\n }\n\n // Helpers:\n function signerIsValid(bytes32 data, uint8 v, bytes32 r, bytes32 s)\n public constant returns (bool)\n {\n bytes memory prefix = \"\\x19Ethereum Signed Message:\\n32\";\n bytes32 prefixed = keccak256(prefix, data);\n return (ecrecover(prefixed, v, r, s) == signer);\n }\n\n // Methods:\n // set address that is used on server-side to calculate signatures\n // and on contract-side to verify them\n function setSigner(address newSigner) public onlyOwner {\n signer = newSigner;\n LogSignerChanged(newSigner);\n }\n\n function setRegistry(address newRegistry) public onlyOwner {\n registry = EthereumClaimsRegistryInterface(newRegistry);\n LogRegistryChanged(newRegistry);\n }\n\n // withdraw specified amount of eth in wei\n function withdrawSome(uint256 amountWei)\n public onlyOwner\n {\n require(address(this).balance >= amountWei);\n owner.transfer(amountWei);\n }\n\n // withdraw all available eth\n function withdrawAll()\n public onlyOwner\n {\n require(address(this).balance > 0);\n owner.transfer(address(this).balance);\n }\n\n function userExists(address wallet)\n public constant returns (bool)\n {\n return (users[wallet].creationBlock > 0);\n }\n\n function userAddressConfirmed(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (bool)\n {\n bytes32 keccakIdentifier = users[wallet].physicalAddresses[addressIndex].keccakIdentifier;\n\n if (keccakIdentifier == 0x0) {\n return false;\n }\n\n return PhysicalAddressClaim.decodeConfirmation(registry.getClaim(address(this), wallet, keccakIdentifier)) > 0;\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByCreationBlock(address wallet, uint256 creationBlock)\n public constant checkUserExists(wallet) returns (bool, uint256, bool)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].creationBlock == creationBlock) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByConfirmationCode(\n address wallet,\n bytes32 confirmationCodeSha3\n )\n public\n constant\n checkUserExists(wallet)\n returns(bool, uint256, bool, bytes32)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].confirmationCodeSha3 == confirmationCodeSha3) {\n return (\n true,\n ai,\n userAddressConfirmed(wallet, ai),\n users[wallet].physicalAddresses[ai].keccakIdentifier\n );\n }\n }\n return (false, 0, false, 0x0);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByAddress(address wallet, string country, string state, string city, string location, string zip)\n public constant checkUserExists(wallet) returns(bool, uint256, bool)\n {\n bytes32 keccakIdentifier = keccak256(country, state, city, location, zip);\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].keccakIdentifier == keccakIdentifier) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns last name submitted to PoPA contract\n function userLastSubmittedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n return users[wallet].physicalAddresses[users[wallet].physicalAddresses.length-1].name;\n }\n\n // returns name from the last confirmed address. If no addresses were confirmed returns ''\n function userLastConfirmedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n for (uint256 ai = users[wallet].physicalAddresses.length; ai > 0;) {\n ai--;\n if (userAddressConfirmed(wallet, ai)) {\n return users[wallet].physicalAddresses[ai].name;\n }\n }\n return \"\";\n }\n\n // returns how many addresses there are in PoPA contract. If user does not exist, returns 0\n function userSubmittedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n return users[wallet].physicalAddresses.length;\n }\n\n // returns how many addresses from PoPA contract are confirmed. If user does not exist, returns 0\n function userConfirmedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n uint256 c = 0;\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (userAddressConfirmed(wallet, ai)) {\n c += 1;\n }\n }\n return c;\n }\n\n function userAddress(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string country, string state, string city, string location, string zip)\n {\n return (\n users[wallet].physicalAddresses[addressIndex].country,\n users[wallet].physicalAddresses[addressIndex].state,\n users[wallet].physicalAddresses[addressIndex].city,\n users[wallet].physicalAddresses[addressIndex].location,\n users[wallet].physicalAddresses[addressIndex].zip\n );\n }\n\n function userAddressInfo(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string name,\n uint256 creationBlock,\n uint256 confirmationBlock,\n bytes32 keccakIdentifier\n ) {\n uint256 _confirmationBlock = PhysicalAddressClaim.decodeConfirmation(registry.getClaim(\n address(this),\n wallet,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier)\n );\n return (\n users[wallet].physicalAddresses[addressIndex].name,\n users[wallet].physicalAddresses[addressIndex].creationBlock,\n _confirmationBlock,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier\n );\n }\n\n // Main methods:\n function registerAddress(\n string name,\n string country, string state, string city, string location, string zip,\n uint256 priceWei,\n bytes32 confirmationCodeSha3, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public payable\n {\n require(bytes(name).length > 0);\n require(bytes(country).length > 0);\n require(bytes(state).length > 0);\n require(bytes(city).length > 0);\n require(bytes(location).length > 0);\n require(bytes(zip).length > 0);\n require(msg.value >= priceWei);\n\n bytes32 data = keccak256(\n msg.sender,\n name,\n country,\n state,\n city,\n location,\n zip,\n priceWei,\n confirmationCodeSha3\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n if (userExists(msg.sender)) {\n // check if this address is already registered\n bool found;\n (found, , ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n\n require(!found);\n } else {\n // new user\n users[msg.sender].creationBlock = block.number;\n\n totalUsers += 1;\n }\n\n PhysicalAddress memory pa;\n\n pa.name = name;\n pa.country = country;\n pa.state = state;\n pa.city = city;\n pa.location = location;\n pa.zip = zip;\n pa.creationBlock = block.number;\n pa.confirmationCodeSha3 = confirmationCodeSha3;\n pa.keccakIdentifier = keccak256(country, state, city, location, zip);\n users[msg.sender].physicalAddresses.push(pa);\n\n totalAddresses += 1;\n\n LogAddressRegistered(msg.sender, pa.keccakIdentifier);\n }\n\n function unregisterAddress(string country, string state, string city, string location, string zip)\n public checkUserExists(msg.sender)\n {\n bool found;\n uint256 index;\n (found, index, ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n require(found);\n\n bytes32 keccakIdentifier = users[msg.sender].physicalAddresses[index].keccakIdentifier;\n registry.removeClaim(\n address(this),\n msg.sender,\n keccakIdentifier\n );\n\n // Remove physical address from list\n uint256 length = users[msg.sender].physicalAddresses.length;\n\n for (uint256 i = index; i < length - 1; i++) {\n users[msg.sender].physicalAddresses[i] = users[msg.sender].physicalAddresses[i+1];\n }\n\n delete users[msg.sender].physicalAddresses[length - 1];\n users[msg.sender].physicalAddresses.length--;\n\n if (users[msg.sender].physicalAddresses.length == 0) {\n delete users[msg.sender];\n }\n\n LogAddressUnregistered(msg.sender, keccakIdentifier);\n }\n\n function confirmAddress(string confirmationCodePlain, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public checkUserExists(msg.sender)\n {\n require(bytes(confirmationCodePlain).length > 0);\n\n bytes32 data = keccak256(\n msg.sender,\n confirmationCodePlain\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n bool found;\n uint ai;\n bool confirmed;\n bytes32 keccakIdentifier;\n (found, ai, confirmed, keccakIdentifier) = userAddressByConfirmationCode(\n msg.sender,\n keccak256(confirmationCodePlain)\n );\n require(found);\n require(!confirmed);\n\n registry.setClaim(msg.sender, keccakIdentifier, PhysicalAddressClaim.encode(block.number));\n totalConfirmed += 1;\n\n LogAddressConfirmed(msg.sender, keccakIdentifier);\n }\n}\n", - "sourcePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/ProofOfPhysicalAddress.sol", + "bytecode": "0x6060604052341561000f57600080fd5b6040516020806146b283398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506145948061011e6000396000f30060606040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063058317761461016f5780630e666e49146101db578063238ac9331461022c5780632c2a178e146102815780634028a0f11461045e57806369ffa08a1461049b5780636c19e783146104f35780637b1039991461052c578063853828b61461058157806389bff0b9146105965780638da5cb5b14610606578063a5db3d021461065b578063a87430ba146106de578063a91ee0dc1461072b578063ae9b051c14610764578063b4778e2d14610787578063b55fbd04146109f2578063bff1f9e114610aa4578063c0fe077f14610ae1578063c228251b14610b60578063c94f2c1b14610cc9578063cfad527714610d16578063d673560414610d53578063d956be1014610e05578063de3d702e14610e6a578063e585332e14610eb7578063f0486ab414611069578063feea9808146110c3575b600080fd5b341561017a57600080fd5b6101af600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061119b565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101e657600080fd5b610212600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112ad565b604051808215151515815260200191505060405180910390f35b341561023757600080fd5b61023f6112fb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61045c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611321565b005b341561046957600080fd5b610471611aed565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b34156104a657600080fd5b6104f1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b07565b005b34156104fe57600080fd5b61052a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e0c565b005b341561053757600080fd5b61053f611f0e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058c57600080fd5b610594611f34565b005b34156105a157600080fd5b6105da600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505061202f565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b341561061157600080fd5b610619612149565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561066657600080fd5b6106dc600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff16906020019091908035600019169060200190919080356000191690602001909190505061216e565b005b34156106e957600080fd5b610715600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612511565b6040518082815260200191505060405180910390f35b341561073657600080fd5b610762600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061252f565b005b341561076f57600080fd5b6107856004808035906020019091905050612631565b005b341561079257600080fd5b6107c7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612716565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b838110156108175780820151818401526020810190506107fc565b50505050905090810190601f1680156108445780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561087d578082015181840152602081019050610862565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108e35780820151818401526020810190506108c8565b50505050905090810190601f1680156109105780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561094957808201518184015260208101905061092e565b50505050905090810190601f1680156109765780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156109af578082015181840152602081019050610994565b50505050905090810190601f1680156109dc5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b34156109fd57600080fd5b610a29600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612c54565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a69578082015181840152602081019050610a4e565b50505050905090810190601f168015610a965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610aaf57600080fd5b610ab7612dfd565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610aec57600080fd5b610b25600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050612e17565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610b6b57600080fd5b610cc7600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612fa1565b005b3415610cd457600080fd5b610d00600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506135d3565b6040518082815260200191505060405180910390f35b3415610d2157600080fd5b610d2961365a565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610d5e57600080fd5b610d8a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613674565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578082015181840152602081019050610daf565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610e1057600080fd5b610e5060048080356000191690602001909190803560ff1690602001909190803560001916906020019091908035600019169060200190919050506137da565b604051808215151515815260200191505060405180910390f35b3415610e7557600080fd5b610ea1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613976565b6040518082815260200191505060405180910390f35b3415610ec257600080fd5b61103d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506139c5565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b341561107457600080fd5b6110a9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613bb7565b604051808215151515815260200191505060405180910390f35b34156110ce57600080fd5b611103600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613e12565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b600080600080856111ab816112ad565b15156111b657600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156112955785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561125857fe5b90600052602060002090600902016006015414156112885760018261127d8985613bb7565b9450945094506112a4565b81806001019250506111bb565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061132c614222565b60008e5111151561133c57600080fd5b60008d5111151561134c57600080fd5b60008c5111151561135c57600080fd5b60008b5111151561136c57600080fd5b60008a5111151561137c57600080fd5b6000895111151561138c57600080fd5b87341015151561139b57600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561141a57805182526020820191506020810190506020830392506113f5565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561146d5780518252602082019150602081019050602083039250611448565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156114c0578051825260208201915060208101905060208303925061149b565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b60208310151561151357805182526020820191506020810190506020830392506114ee565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156115665780518252602082019150602081019050602083039250611541565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156115b95780518252602082019150602081019050602083039250611594565b6001836020036101000a0380198251168184511680821785525050505050509050018381526020018260001916600019168152602001995050505050505050505060405180910390209250611610838787876137da565b151561161b57600080fd5b611624336112ad565b1561165057611637338e8e8e8e8e6139c5565b905050809250508115151561164b57600080fd5b6116db565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b60208310151561176a5780518252602082019150602081019050602083039250611745565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156117bd5780518252602082019150602081019050602083039250611798565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561181057805182526020820191506020810190506020830392506117eb565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611863578051825260208201915060208101905060208303925061183e565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156118b65780518252602082019150602081019050602083039250611891565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480600101828161194e9190614299565b9160005260206000209060090201600083909190915060008201518160000190805190602001906119809291906142cb565b50602082015181600101908051906020019061199d9291906142cb565b5060408201518160020190805190602001906119ba9291906142cb565b5060608201518160030190805190602001906119d79291906142cb565b5060808201518160040190805190602001906119f49291906142cb565b5060a0820151816005019080519060200190611a119291906142cb565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fe7c91dadc713049bfb35a5b137524bc4546369091366d48bb185433127b9f26b8260e0015160405180826000191660001916815260200191505060405180910390a25050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611ba157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611bdd57600080fd5b8391508173ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611c8357600080fd5b6102c65a03f11515611c9457600080fd5b5050506040518051905090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611d4b57600080fd5b6102c65a03f11515611d5c57600080fd5b50505060405180519050507fbade9c303f5a400b6706b3cbea82197948f018cd82138ea9bafcada571831967848483604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6757600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fee87a28570c895f7da676d522308fff544b84e34ac47fcb36b53f5ef848e5e3281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f8f57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611fb557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561202d57600080fd5b565b6000806000808561203f816112ad565b151561204a57600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015612131578560001916600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101838154811015156120f057fe5b906000526020600020906009020160070154600019161415612124576001826121198985613bb7565b945094509450612140565b818060010192505061204f565b60008060008191509450945094505b50509250925092565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033612180816112ad565b151561218b57600080fd5b60008a5111151561219b57600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b60208310151561221357805182526020820191506020810190506020830392506121ee565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040518091039020955061224f868a8a8a6137da565b151561225a57600080fd5b6122c6338b6040518082805190602001908083835b602083101515612294578051825260208201915060208101905060208303925061226f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020612e17565b809550819650829750839850505050508415156122e257600080fd5b821515156122ef57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15156123a257600080fd5b6102c65a03f415156123b357600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b151561245857600080fd5b6102c65a03f1151561246957600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fcb5c5ab258abc7b8cafdc09ca97a09fa4d98a46a9a83f0462061e78fcb198cb98360405180826000191660001916815260200191505060405180910390a250505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561258a57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffd9ec64cd3990d58d48617f2750d82ea8ea105c84989b7f77c5242178ba4aeb81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268c57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101515156126b257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561271357600080fd5b50565b61271e61434b565b61272661434b565b61272e61434b565b61273661434b565b61273e61434b565b86612748816112ad565b151561275357600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101878154811015156127a257fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018881548110151561280257fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018981548110151561286257fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156128c257fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b81548110151561292257fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129c85780601f1061299d576101008083540402835291602001916129c8565b820191906000526020600020905b8154815290600101906020018083116129ab57829003601f168201915b50505050509450838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a645780601f10612a3957610100808354040283529160200191612a64565b820191906000526020600020905b815481529060010190602001808311612a4757829003601f168201915b50505050509350828054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b005780601f10612ad557610100808354040283529160200191612b00565b820191906000526020600020905b815481529060010190602001808311612ae357829003601f168201915b50505050509250818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b9c5780601f10612b7157610100808354040283529160200191612b9c565b820191906000526020600020905b815481529060010190602001808311612b7f57829003601f168201915b50505050509150808054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c385780601f10612c0d57610100808354040283529160200191612c38565b820191906000526020600020905b815481529060010190602001808311612c1b57829003601f168201915b5050505050905095509550955095509550509295509295909350565b612c5c61434b565b600082612c68816112ad565b1515612c7357600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b6000821115612de257818060019003925050612cd88483613bb7565b15612ddd57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612d2c57fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612dd15780601f10612da657610100808354040283529160200191612dd1565b820191906000526020600020905b815481529060010190602001808311612db457829003601f168201915b50505050509250612df6565b612cbc565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b600080600080600086612e29816112ad565b1515612e3457600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015612f7e578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612eda57fe5b906000526020600020906009020160080154600019161415612f7157600182612f038a85613bb7565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010185815481101515612f5257fe5b9060005260206000209060090201600701549550955095509550612f96565b8180600101925050612e39565b60008060008082925080600102905095509550955095505b505092959194509250565b600080600080600033612fb3816112ad565b1515612fbe57600080fd5b612fcc338c8c8c8c8c6139c5565b508096508197505050851515612fe157600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018581548110151561303057fe5b9060005260206000209060090201600701549350600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033876040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b151561314457600080fd5b6102c65a03f1151561315557600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508491505b6001830382101561339657600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001830181548110151561320157fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561325e57fe5b90600052602060002090600902016000820181600001908054600181600116156101000203166002900461329392919061435f565b50600182018160010190805460018160011615610100020316600290046132bb92919061435f565b50600282018160020190805460018160011615610100020316600290046132e392919061435f565b506003820181600301908054600181600116156101000203166002900461330b92919061435f565b506004820181600401908054600181600116156101000203166002900461333392919061435f565b506005820181600501908054600181600116156101000203166002900461335b92919061435f565b5060068201548160060155600782015481600701906000191690556008820154816008019060001916905590505081806001019250506131a4565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600184038154811015156133e857fe5b90600052602060002090600902016000808201600061340791906143e6565b60018201600061341791906143e6565b60028201600061342791906143e6565b60038201600061343791906143e6565b60048201600061344791906143e6565b60058201600061345791906143e6565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054809190600190036134c6919061442e565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050141561357057600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600061356d9190614460565b50505b3373ffffffffffffffffffffffffffffffffffffffff167ff205ce75791437944181c7d5b0da9fc3f03171ae90ec93e4dc4f3ddf2982eb018560405180826000191660001916815260200191505060405180910390a25050505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015613650576136378482613bb7565b15613643576001820191505b80806001019150506135e0565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b61367c61434b565b81613686816112ad565b151561369157600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561372857fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156137cd5780601f106137a2576101008083540402835291602001916137cd565b820191906000526020600020905b8154815290600101906020018083116137b057829003601f168201915b5050505050915050919050565b60006137e4614484565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156138555780518252602082019150602081019050602083039250613830565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561394a57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b600080600080896139d5816112ad565b15156139e057600080fd5b89898989896040518086805190602001908083835b602083101515613a1a57805182526020820191506020810190506020830392506139f5565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515613a6d5780518252602082019150602081019050602083039250613a48565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515613ac05780518252602082019150602081019050602083039250613a9b565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515613b135780518252602082019150602081019050602083039250613aee565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083101515613b665780518252602082019150602081019050602083039250613b41565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209150613ba38b8361202f565b945094509450505096509650969350505050565b60008083613bc4816112ad565b1515613bcf57600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010184815481101515613c1e57fe5b9060005260206000209060090201600701549150600060010282600019161415613c4b5760009250613e0a565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613d7057600080fd5b6102c65a03f11515613d8157600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613deb57600080fd5b6102c65a03f41515613dfc57600080fd5b505050604051805190501192505b505092915050565b613e1a61434b565b60008060008086613e2a816112ad565b1515613e3557600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d815481101515613ede57fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613fb857600080fd5b6102c65a03f11515613fc957600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b151561403357600080fd5b6102c65a03f4151561404457600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561409f57fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156140ff57fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a81548110151561416157fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156142085780601f106141dd57610100808354040283529160200191614208565b820191906000526020600020905b8154815290600101906020018083116141eb57829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280614237614498565b8152602001614244614498565b8152602001614251614498565b815260200161425e614498565b815260200161426b614498565b8152602001614278614498565b81526020016000815260200160008019168152602001600080191681525090565b8154818355818115116142c6576009028160090283600052602060002091820191016142c591906144ac565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061430c57805160ff191683800117855561433a565b8280016001018555821561433a579182015b8281111561433957825182559160200191906001019061431e565b5b5090506143479190614543565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061439857805485556143d5565b828001600101855582156143d557600052602060002091601f016020900482015b828111156143d45782548255916001019190600101906143b9565b5b5090506143e29190614543565b5090565b50805460018160011615610100020316600290046000825580601f1061440c575061442b565b601f01602090049060005260206000209081019061442a9190614543565b5b50565b81548183558181151161445b5760090281600902836000526020600020918201910161445a91906144ac565b5b505050565b508054600082556009029060005260206000209081019061448191906144ac565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b61454091905b8082111561453c57600080820160006144cb91906143e6565b6001820160006144db91906143e6565b6002820160006144eb91906143e6565b6003820160006144fb91906143e6565b60048201600061450b91906143e6565b60058201600061451b91906143e6565b600682016000905560078201600090556008820160009055506009016144b2565b5090565b90565b61456591905b80821115614561576000816000905550600101614549565b5090565b905600a165627a7a72305820807dd6399c24d777f1cad49bdfae234fb9d740e7e7f078bf63ba1e97964157350029", + "deployedBytecode": "0x60606040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063058317761461016f5780630e666e49146101db578063238ac9331461022c5780632c2a178e146102815780634028a0f11461045e57806369ffa08a1461049b5780636c19e783146104f35780637b1039991461052c578063853828b61461058157806389bff0b9146105965780638da5cb5b14610606578063a5db3d021461065b578063a87430ba146106de578063a91ee0dc1461072b578063ae9b051c14610764578063b4778e2d14610787578063b55fbd04146109f2578063bff1f9e114610aa4578063c0fe077f14610ae1578063c228251b14610b60578063c94f2c1b14610cc9578063cfad527714610d16578063d673560414610d53578063d956be1014610e05578063de3d702e14610e6a578063e585332e14610eb7578063f0486ab414611069578063feea9808146110c3575b600080fd5b341561017a57600080fd5b6101af600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061119b565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b34156101e657600080fd5b610212600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112ad565b604051808215151515815260200191505060405180910390f35b341561023757600080fd5b61023f6112fb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61045c600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080356000191690602001909190803560ff169060200190919080356000191690602001909190803560001916906020019091905050611321565b005b341561046957600080fd5b610471611aed565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b34156104a657600080fd5b6104f1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b07565b005b34156104fe57600080fd5b61052a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e0c565b005b341561053757600080fd5b61053f611f0e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058c57600080fd5b610594611f34565b005b34156105a157600080fd5b6105da600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505061202f565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b341561061157600080fd5b610619612149565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561066657600080fd5b6106dc600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff16906020019091908035600019169060200190919080356000191690602001909190505061216e565b005b34156106e957600080fd5b610715600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612511565b6040518082815260200191505060405180910390f35b341561073657600080fd5b610762600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061252f565b005b341561076f57600080fd5b6107856004808035906020019091905050612631565b005b341561079257600080fd5b6107c7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612716565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019080838360005b838110156108175780820151818401526020810190506107fc565b50505050905090810190601f1680156108445780820380516001836020036101000a031916815260200191505b5086810385528a818151815260200191508051906020019080838360005b8381101561087d578082015181840152602081019050610862565b50505050905090810190601f1680156108aa5780820380516001836020036101000a031916815260200191505b50868103845289818151815260200191508051906020019080838360005b838110156108e35780820151818401526020810190506108c8565b50505050905090810190601f1680156109105780820380516001836020036101000a031916815260200191505b50868103835288818151815260200191508051906020019080838360005b8381101561094957808201518184015260208101905061092e565b50505050905090810190601f1680156109765780820380516001836020036101000a031916815260200191505b50868103825287818151815260200191508051906020019080838360005b838110156109af578082015181840152602081019050610994565b50505050905090810190601f1680156109dc5780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b34156109fd57600080fd5b610a29600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612c54565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a69578082015181840152602081019050610a4e565b50505050905090810190601f168015610a965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610aaf57600080fd5b610ab7612dfd565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610aec57600080fd5b610b25600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050612e17565b604051808515151515815260200184815260200183151515158152602001826000191660001916815260200194505050505060405180910390f35b3415610b6b57600080fd5b610cc7600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612fa1565b005b3415610cd457600080fd5b610d00600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506135d3565b6040518082815260200191505060405180910390f35b3415610d2157600080fd5b610d2961365a565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b3415610d5e57600080fd5b610d8a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613674565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dca578082015181840152602081019050610daf565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610e1057600080fd5b610e5060048080356000191690602001909190803560ff1690602001909190803560001916906020019091908035600019169060200190919050506137da565b604051808215151515815260200191505060405180910390f35b3415610e7557600080fd5b610ea1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613976565b6040518082815260200191505060405180910390f35b3415610ec257600080fd5b61103d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506139c5565b604051808415151515815260200183815260200182151515158152602001935050505060405180910390f35b341561107457600080fd5b6110a9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613bb7565b604051808215151515815260200191505060405180910390f35b34156110ce57600080fd5b611103600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613e12565b60405180806020018581526020018481526020018360001916600019168152602001828103825286818151815260200191508051906020019080838360005b8381101561115d578082015181840152602081019050611142565b50505050905090810190601f16801561118a5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b600080600080856111ab816112ad565b15156111b657600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508210156112955785600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561125857fe5b90600052602060002090600902016006015414156112885760018261127d8985613bb7565b9450945094506112a4565b81806001019250506111bb565b60008060008191509450945094505b50509250925092565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154119050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061132c614222565b60008e5111151561133c57600080fd5b60008d5111151561134c57600080fd5b60008c5111151561135c57600080fd5b60008b5111151561136c57600080fd5b60008a5111151561137c57600080fd5b6000895111151561138c57600080fd5b87341015151561139b57600080fd5b338e8e8e8e8e8e8e8e604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189805190602001908083835b60208310151561141a57805182526020820191506020810190506020830392506113f5565b6001836020036101000a03801982511681845116808217855250505050505090500188805190602001908083835b60208310151561146d5780518252602082019150602081019050602083039250611448565b6001836020036101000a03801982511681845116808217855250505050505090500187805190602001908083835b6020831015156114c0578051825260208201915060208101905060208303925061149b565b6001836020036101000a03801982511681845116808217855250505050505090500186805190602001908083835b60208310151561151357805182526020820191506020810190506020830392506114ee565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156115665780518252602082019150602081019050602083039250611541565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b6020831015156115b95780518252602082019150602081019050602083039250611594565b6001836020036101000a0380198251168184511680821785525050505050509050018381526020018260001916600019168152602001995050505050505050505060405180910390209250611610838787876137da565b151561161b57600080fd5b611624336112ad565b1561165057611637338e8e8e8e8e6139c5565b905050809250508115151561164b57600080fd5b6116db565b43600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600460008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b8d81600001819052508c81602001819052508b81604001819052508a8160600181905250898160800181905250888160a00181905250438160c00181815250508681610100019060001916908160001916815250508c8c8c8c8c6040518086805190602001908083835b60208310151561176a5780518252602082019150602081019050602083039250611745565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b6020831015156117bd5780518252602082019150602081019050602083039250611798565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b60208310151561181057805182526020820191506020810190506020830392506117eb565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515611863578051825260208201915060208101905060208303925061183e565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831015156118b65780518252602082019150602081019050602083039250611891565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390208160e001906000191690816000191681525050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480600101828161194e9190614299565b9160005260206000209060090201600083909190915060008201518160000190805190602001906119809291906142cb565b50602082015181600101908051906020019061199d9291906142cb565b5060408201518160020190805190602001906119ba9291906142cb565b5060608201518160030190805190602001906119d79291906142cb565b5060808201518160040190805190602001906119f49291906142cb565b5060a0820151816005019080519060200190611a119291906142cb565b5060c0820151816006015560e0820151816007019060001916905561010082015181600801906000191690555050506001600460088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fe7c91dadc713049bfb35a5b137524bc4546369091366d48bb185433127b9f26b8260e0015160405180826000191660001916815260200191505060405180910390a25050505050505050505050505050565b600460109054906101000a900467ffffffffffffffff1681565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b6557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611ba157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611bdd57600080fd5b8391508173ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611c8357600080fd5b6102c65a03f11515611c9457600080fd5b5050506040518051905090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611d4b57600080fd5b6102c65a03f11515611d5c57600080fd5b50505060405180519050507fbade9c303f5a400b6706b3cbea82197948f018cd82138ea9bafcada571831967848483604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6757600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fee87a28570c895f7da676d522308fff544b84e34ac47fcb36b53f5ef848e5e3281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f8f57600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515611fb557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050151561202d57600080fd5b565b6000806000808561203f816112ad565b151561204a57600080fd5b600091505b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015612131578560001916600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101838154811015156120f057fe5b906000526020600020906009020160070154600019161415612124576001826121198985613bb7565b945094509450612140565b818060010192505061204f565b60008060008191509450945094505b50509250925092565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600033612180816112ad565b151561218b57600080fd5b60008a5111151561219b57600080fd5b338a604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182805190602001908083835b60208310151561221357805182526020820191506020810190506020830392506121ee565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040518091039020955061224f868a8a8a6137da565b151561225a57600080fd5b6122c6338b6040518082805190602001908083835b602083101515612294578051825260208201915060208101905060208303925061226f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020612e17565b809550819650829750839850505050508415156122e257600080fd5b821515156122ef57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639918925d338473__PhysicalAddressClaim__________________63deb21fa2436000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15156123a257600080fd5b6102c65a03f415156123b357600080fd5b505050604051805190506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200182600019166000191681526020019350505050600060405180830381600087803b151561245857600080fd5b6102c65a03f1151561246957600080fd5b5050506001600460108282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fcb5c5ab258abc7b8cafdc09ca97a09fa4d98a46a9a83f0462061e78fcb198cb98360405180826000191660001916815260200191505060405180910390a250505050505050505050565b60036020528060005260406000206000915090508060000154905081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561258a57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffd9ec64cd3990d58d48617f2750d82ea8ea105c84989b7f77c5242178ba4aeb81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268c57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101515156126b257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561271357600080fd5b50565b61271e61434b565b61272661434b565b61272e61434b565b61273661434b565b61273e61434b565b86612748816112ad565b151561275357600080fd5b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101878154811015156127a257fe5b9060005260206000209060090201600101600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018881548110151561280257fe5b9060005260206000209060090201600201600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018981548110151561286257fe5b9060005260206000209060090201600301600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a8154811015156128c257fe5b9060005260206000209060090201600401600360008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018b81548110151561292257fe5b9060005260206000209060090201600501848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129c85780601f1061299d576101008083540402835291602001916129c8565b820191906000526020600020905b8154815290600101906020018083116129ab57829003601f168201915b50505050509450838054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a645780601f10612a3957610100808354040283529160200191612a64565b820191906000526020600020905b815481529060010190602001808311612a4757829003601f168201915b50505050509350828054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b005780601f10612ad557610100808354040283529160200191612b00565b820191906000526020600020905b815481529060010190602001808311612ae357829003601f168201915b50505050509250818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b9c5780601f10612b7157610100808354040283529160200191612b9c565b820191906000526020600020905b815481529060010190602001808311612b7f57829003601f168201915b50505050509150808054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c385780601f10612c0d57610100808354040283529160200191612c38565b820191906000526020600020905b815481529060010190602001808311612c1b57829003601f168201915b5050505050905095509550955095509550509295509295909350565b612c5c61434b565b600082612c68816112ad565b1515612c7357600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905091505b6000821115612de257818060019003925050612cd88483613bb7565b15612ddd57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515612d2c57fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612dd15780601f10612da657610100808354040283529160200191612dd1565b820191906000526020600020905b815481529060010190602001808311612db457829003601f168201915b50505050509250612df6565b612cbc565b602060405190810160405280600081525092505b5050919050565b600460009054906101000a900467ffffffffffffffff1681565b600080600080600086612e29816112ad565b1515612e3457600080fd5b600091505b600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050821015612f7e578660001916600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010183815481101515612eda57fe5b906000526020600020906009020160080154600019161415612f7157600182612f038a85613bb7565b600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010185815481101515612f5257fe5b9060005260206000209060090201600701549550955095509550612f96565b8180600101925050612e39565b60008060008082925080600102905095509550955095505b505092959194509250565b600080600080600033612fb3816112ad565b1515612fbe57600080fd5b612fcc338c8c8c8c8c6139c5565b508096508197505050851515612fe157600080fd5b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018581548110151561303057fe5b9060005260206000209060090201600701549350600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7508ec73033876040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b151561314457600080fd5b6102c65a03f1151561315557600080fd5b505050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905092508491505b6001830382101561339657600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001830181548110151561320157fe5b9060005260206000209060090201600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018381548110151561325e57fe5b90600052602060002090600902016000820181600001908054600181600116156101000203166002900461329392919061435f565b50600182018160010190805460018160011615610100020316600290046132bb92919061435f565b50600282018160020190805460018160011615610100020316600290046132e392919061435f565b506003820181600301908054600181600116156101000203166002900461330b92919061435f565b506004820181600401908054600181600116156101000203166002900461333392919061435f565b506005820181600501908054600181600116156101000203166002900461335b92919061435f565b5060068201548160060155600782015481600701906000191690556008820154816008019060001916905590505081806001019250506131a4565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600184038154811015156133e857fe5b90600052602060002090600902016000808201600061340791906143e6565b60018201600061341791906143e6565b60028201600061342791906143e6565b60038201600061343791906143e6565b60048201600061344791906143e6565b60058201600061345791906143e6565b6006820160009055600782016000905560088201600090555050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054809190600190036134c6919061442e565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050141561357057600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008082016000905560018201600061356d9190614460565b50505b3373ffffffffffffffffffffffffffffffffffffffff167ff205ce75791437944181c7d5b0da9fc3f03171ae90ec93e4dc4f3ddf2982eb018560405180826000191660001916815260200191505060405180910390a25050505050505050505050565b6000806000809150600090505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180549050811015613650576136378482613bb7565b15613643576001820191505b80806001019150506135e0565b8192505050919050565b600460089054906101000a900467ffffffffffffffff1681565b61367c61434b565b81613686816112ad565b151561369157600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561372857fe5b90600052602060002090600902016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156137cd5780601f106137a2576101008083540402835291602001916137cd565b820191906000526020600020905b8154815290600101906020018083116137b057829003601f168201915b5050505050915050919050565b60006137e4614484565b60006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250915081876040518083805190602001908083835b6020831015156138555780518252602082019150602081019050602083039250613830565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019250505060405180910390209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600182888888604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561394a57600080fd5b50506020604051035173ffffffffffffffffffffffffffffffffffffffff161492505050949350505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490509050919050565b600080600080896139d5816112ad565b15156139e057600080fd5b89898989896040518086805190602001908083835b602083101515613a1a57805182526020820191506020810190506020830392506139f5565b6001836020036101000a03801982511681845116808217855250505050505090500185805190602001908083835b602083101515613a6d5780518252602082019150602081019050602083039250613a48565b6001836020036101000a03801982511681845116808217855250505050505090500184805190602001908083835b602083101515613ac05780518252602082019150602081019050602083039250613a9b565b6001836020036101000a03801982511681845116808217855250505050505090500183805190602001908083835b602083101515613b135780518252602082019150602081019050602083039250613aee565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083101515613b665780518252602082019150602081019050602083039250613b41565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405180910390209150613ba38b8361202f565b945094509450505096509650969350505050565b60008083613bc4816112ad565b1515613bcf57600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010184815481101515613c1e57fe5b9060005260206000209060090201600701549150600060010282600019161415613c4b5760009250613e0a565b600073__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308a886000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613d7057600080fd5b6102c65a03f11515613d8157600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b1515613deb57600080fd5b6102c65a03f41515613dfc57600080fd5b505050604051805190501192505b505092915050565b613e1a61434b565b60008060008086613e2a816112ad565b1515613e3557600080fd5b73__PhysicalAddressClaim__________________637194df0d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1661eff308c600360008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018d815481101515613ede57fe5b9060005260206000209060090201600701546000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050602060405180830381600087803b1515613fb857600080fd5b6102c65a03f11515613fc957600080fd5b505050604051805190506000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060206040518083038186803b151561403357600080fd5b6102c65a03f4151561404457600080fd5b505050604051805190509150600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018781548110151561409f57fe5b9060005260206000209060090201600001600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101888154811015156140ff57fe5b90600052602060002090600902016006015483600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018a81548110151561416157fe5b906000526020600020906009020160070154838054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156142085780601f106141dd57610100808354040283529160200191614208565b820191906000526020600020905b8154815290600101906020018083116141eb57829003601f168201915b505050505093509550955095509550505092959194509250565b61012060405190810160405280614237614498565b8152602001614244614498565b8152602001614251614498565b815260200161425e614498565b815260200161426b614498565b8152602001614278614498565b81526020016000815260200160008019168152602001600080191681525090565b8154818355818115116142c6576009028160090283600052602060002091820191016142c591906144ac565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061430c57805160ff191683800117855561433a565b8280016001018555821561433a579182015b8281111561433957825182559160200191906001019061431e565b5b5090506143479190614543565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061439857805485556143d5565b828001600101855582156143d557600052602060002091601f016020900482015b828111156143d45782548255916001019190600101906143b9565b5b5090506143e29190614543565b5090565b50805460018160011615610100020316600290046000825580601f1061440c575061442b565b601f01602090049060005260206000209081019061442a9190614543565b5b50565b81548183558181151161445b5760090281600902836000526020600020918201910161445a91906144ac565b5b505050565b508054600082556009029060005260206000209081019061448191906144ac565b50565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b61454091905b8082111561453c57600080820160006144cb91906143e6565b6001820160006144db91906143e6565b6002820160006144eb91906143e6565b6003820160006144fb91906143e6565b60048201600061450b91906143e6565b60058201600061451b91906143e6565b600682016000905560078201600090556008820160009055506009016144b2565b5090565b90565b61456591905b80821115614561576000816000905550600101614549565b5090565b905600a165627a7a72305820807dd6399c24d777f1cad49bdfae234fb9d740e7e7f078bf63ba1e97964157350029", + "sourceMap": "171:12462:4:-;;;614:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;694:10;686:5;;:18;;;;;;;;;;;;;;;;;;723:5;;;;;;;;;;;714:6;;:14;;;;;;;;;;;;;;;;;;781:9;738:8;;:53;;;;;;;;;;;;;;;;;;614:184;171:12462;;;;;;", + "deployedSourceMap": "171:12462:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3519:455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2852:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;235:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8564:1758;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1029:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12309:322;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2141:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2700:146;;;;;;;;;;;;;;5310:466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;209:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11440:863;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;2499:161;;;;;;;;;;;;;;;;;;;;;;;;;;7221:558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6149:374:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;965:24:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4069:694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10328:1106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6890:325;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;995:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5834:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1716:289:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6625:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4858:357;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2990:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7785:752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3519:455:4;3647:4;3653:7;3662:4;3687:10;3630:6;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;3700:1;3687:14;;3682:252;3708:5;:13;3714:6;3708:13;;;;;;;;;;;;;;;:31;;:38;;;;3703:2;:43;3682:252;;;3825:13;3772:5;:13;3778:6;3772:13;;;;;;;;;;;;;;;:31;;3804:2;3772:35;;;;;;;;;;;;;;;;;;;;:49;;;:66;3768:156;;;3866:4;3872:2;3876:32;3897:6;3905:2;3876:20;:32::i;:::-;3858:51;;;;;;;;3768:156;3748:4;;;;;;;3682:252;;;3951:5;3958:1;3961:5;3943:24;;;;;;;;;1686:1;3519:455;;;;;;;:::o;2852:132::-;2917:4;2975:1;2945:5;:13;2951:6;2945:13;;;;;;;;;;;;;;;:27;;;:31;2937:40;;2852:132;;;:::o;235:21::-;;;;;;;;;;;;;:::o;8564:1758::-;9122:12;9519:10;9808:25;;:::i;:::-;8857:1;8842:4;8836:18;:22;8828:31;;;;;;;;8901:1;8883:7;8877:21;:25;8869:34;;;;;;;;8943:1;8927:5;8921:19;:23;8913:32;;;;;;;;8984:1;8969:4;8963:18;:22;8955:31;;;;;;;;9029:1;9010:8;9004:22;:26;8996:35;;;;;;;;9069:1;9055:3;9049:17;:21;9041:30;;;;;;;;9102:8;9089:9;:21;;9081:30;;;;;;;;9160:10;9184:4;9202:7;9223:5;9242:4;9260:8;9282:3;9299:8;9321:20;9137:214;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9122:229:4;;9369:37;9383:4;9389;9395;9401;9369:13;:37::i;:::-;9361:46;;;;;;;;9422:22;9433:10;9422;:22::i;:::-;9418:380;;;9557:69;9578:10;9590:7;9599:5;9606:4;9612:8;9622:3;9557:20;:69::i;:::-;9543:83;;;;;;;9650:5;9649:6;9641:15;;;;;;;;9418:380;;;9745:12;9711:5;:17;9717:10;9711:17;;;;;;;;;;;;;;;:31;;:46;;;;9786:1;9772:10;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9418:380;9854:4;9844:2;:7;;:14;;;;9881:7;9868:2;:10;;:20;;;;9909:5;9898:2;:8;;:16;;;;9934:4;9924:2;:7;;:14;;;;9962:8;9948:2;:11;;:22;;;;9989:3;9980:2;:6;;:12;;;;10021;10002:2;:16;;:31;;;;;10069:20;10043:2;:23;;:46;;;;;;;;;;;;;10131:7;10140:5;10147:4;10153:8;10163:3;10121:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;10099:2:4;:19;;:68;;;;;;;;;;;;;10177:5;:17;10183:10;10177:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;10218:2;10177:44;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10250:1;10232:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10283:10;10262:53;;;10295:2;:19;;;10262:53;;;;;;;;;;;;;;;;;;;;;;;;8564:1758;;;;;;;;;;;;;;:::o;1029:28::-;;;;;;;;;;;;;:::o;12309:322::-;12462:11;12499:15;1568:5;;;;;;;;;;;1554:19;;:10;:19;;;1546:28;;;;;;;;12412:1;12394:20;;:6;:20;;;;12386:29;;;;;;;;12448:1;12433:17;;:3;:17;;;;12425:26;;;;;;;;12482:6;12462:27;;12517:5;:15;;;12533:4;12517:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12499:39;;12548:5;:14;;;12563:3;12568:7;12548:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12586:38;12603:6;12611:3;12616:7;12586:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12309:322;;;;:::o;2141:127::-;1568:5;;;;;;;;;;;1554:19;;:10;:19;;;1546:28;;;;;;;;2215:9;2206:6;;:18;;;;;;;;;;;;;;;;;;2234:27;2251:9;2234:27;;;;;;;;;;;;;;;;;;;;;;2141:127;:::o;262:47::-;;;;;;;;;;;;;:::o;2700:146::-;1568:5;;;;;;;;;;;1554:19;;:10;:19;;;1546:28;;;;;;;;2790:1;2774:4;2766:21;;;:25;2758:34;;;;;;;;2802:5;;;;;;;;;;;:14;;:37;2825:4;2817:21;;;2802:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2700:146::o;5310:466::-;5443:4;5449:7;5458:4;5483:10;5427:6;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;5496:1;5483:14;;5478:258;5504:5;:13;5510:6;5504:13;;;;;;;;;;;;;;;:31;;:38;;;;5499:2;:43;5478:258;;;5624:16;5568:72;;;:5;:13;5574:6;5568:13;;;;;;;;;;;;;;;:31;;5600:2;5568:35;;;;;;;;;;;;;;;;;;;;:52;;;:72;;;;5564:162;;;5668:4;5674:2;5678:32;5699:6;5707:2;5678:20;:32::i;:::-;5660:51;;;;;;;;5564:162;5544:4;;;;;;;5478:258;;;5753:5;5760:1;5763:5;5745:24;;;;;;;;;1686:1;5310:466;;;;;;;:::o;209:20::-;;;;;;;;;;;;;:::o;11440:863::-;11646:12;11806:10;11826:7;11843:14;11867:24;11561:10;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;11633:1;11601:21;11595:35;:39;11587:48;;;;;;;;11684:10;11708:21;11661:78;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;11646:93:4;;11757:37;11771:4;11777;11783;11789;11757:13;:37::i;:::-;11749:46;;;;;;;;11944:109;11987:10;12021:21;12011:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;11944:29:4;:109::i;:::-;11901:152;;;;;;;;;;;;;;;;12071:5;12063:14;;;;;;;;12096:9;12095:10;12087:19;;;;;;;;12117:8;;;;;;;;;;;:17;;;12135:10;12147:16;12165:20;:27;12193:12;12165:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12117:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12235:1;12217:14;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12267:10;12247:49;;;12279:16;12247:49;;;;;;;;;;;;;;;;;;;;;;;;11440:863;;;;;;;;;;:::o;905:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;2274:172::-;1568:5;;;;;;;;;;;1554:19;;:10;:19;;;1546:28;;;;;;;;2386:11;2343:8;;:55;;;;;;;;;;;;;;;;;;2408:31;2427:11;2408:31;;;;;;;;;;;;;;;;;;;;;;2274:172;:::o;2499:161::-;1568:5;;;;;;;;;;;1554:19;;:10;:19;;;1546:28;;;;;;;;2608:9;2591:4;2583:21;;;:34;;2575:43;;;;;;;;2628:5;;;;;;;;;;;:14;;:25;2643:9;2628:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2499:161;:::o;7221:558::-;7342:14;;:::i;:::-;7358:12;;:::i;:::-;7372:11;;:::i;:::-;7385:15;;:::i;:::-;7402:10;;:::i;:::-;7316:6;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;7449:5;:13;7455:6;7449:13;;;;;;;;;;;;;;;:31;;7481:12;7449:45;;;;;;;;;;;;;;;;;;;;:53;;7516:5;:13;7522:6;7516:13;;;;;;;;;;;;;;;:31;;7548:12;7516:45;;;;;;;;;;;;;;;;;;;;:51;;7581:5;:13;7587:6;7581:13;;;;;;;;;;;;;;;:31;;7613:12;7581:45;;;;;;;;;;;;;;;;;;;;:50;;7645:5;:13;7651:6;7645:13;;;;;;;;;;;;;;;:31;;7677:12;7645:45;;;;;;;;;;;;;;;;;;;;:54;;7713:5;:13;7719:6;7713:13;;;;;;;;;;;;;;;:31;;7745:12;7713:45;;;;;;;;;;;;;;;;;;;;:49;;7428:344;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7221:558;;;;;;;;;:::o;6149:374::-;6249:6;;:::i;:::-;6276:10;6232:6;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;6289:5;:13;6295:6;6289:13;;;;;;;;;;;;;;;:31;;:38;;;;6276:51;;6271:227;6334:1;6329:2;:6;6271:227;;;6352:4;;;;;;;;6374:32;6395:6;6403:2;6374:20;:32::i;:::-;6370:118;;;6433:5;:13;6439:6;6433:13;;;;;;;;;;;;;;;:31;;6465:2;6433:35;;;;;;;;;;;;;;;;;;;;:40;;6426:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6370:118;6271:227;;;6507:9;;;;;;;;;;;;;;;1686:1;6149:374;;;;;:::o;965:24::-;;;;;;;;;;;;;:::o;4069:694::-;4256:4;4262:7;4271:4;4277:7;4305:10;4232:6;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;4318:1;4305:14;;4300:418;4326:5;:13;4332:6;4326:13;;;;;;;;;;;;;;;:31;;:38;;;;4321:2;:43;4300:418;;;4450:20;4390:80;;;:5;:13;4396:6;4390:13;;;;;;;;;;;;;;;:31;;4422:2;4390:35;;;;;;;;;;;;;;;;;;;;:56;;;:80;;;;4386:322;;;4519:4;4545:2;4569:32;4590:6;4598:2;4569:20;:32::i;:::-;4623:5;:13;4629:6;4623:13;;;;;;;;;;;;;;;:31;;4655:2;4623:35;;;;;;;;;;;;;;;;;;;;:52;;;4490:203;;;;;;;;;;4386:322;4366:4;;;;;;;4300:418;;;4735:5;4742:1;4745:5;4752:3;4727:29;;;;;;;;;;;;;;;;1686:1;4069:694;;;;;;;;;:::o;10328:1106::-;10484:10;10504:13;10650:24;10913:14;10988:9;10458:10;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;10546:69;10567:10;10579:7;10588:5;10595:4;10601:8;10611:3;10546:20;:69::i;:::-;10527:88;;;;;;;;;10633:5;10625:14;;;;;;;;10677:5;:17;10683:10;10677:17;;;;;;;;;;;;;;;:35;;10713:5;10677:42;;;;;;;;;;;;;;;;;;;;:59;;;10650:86;;10746:8;;;;;;;;;;;:20;;;10788:4;10807:10;10831:16;10746:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10930:5;:17;10936:10;10930:17;;;;;;;;;;;;;;;:35;;:42;;;;10913:59;;11000:5;10988:17;;10983:151;11020:1;11011:6;:10;11007:1;:14;10983:151;;;11083:5;:17;11089:10;11083:17;;;;;;;;;;;;;;;:35;;11121:1;11119;:3;11083:40;;;;;;;;;;;;;;;;;;;;11042:5;:17;11048:10;11042:17;;;;;;;;;;;;;;;:35;;11078:1;11042:38;;;;;;;;;;;;;;;;;;;;:81;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11023:3;;;;;;;10983:151;;;11151:5;:17;11157:10;11151:17;;;;;;;;;;;;;;;:35;;11196:1;11187:6;:10;11151:47;;;;;;;;;;;;;;;;;;;;;11144:54;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11208:5;:17;11214:10;11208:17;;;;;;;;;;;;;;;:35;;:44;;;;;;;;;;;;:::i;:::-;;11313:1;11267:5;:17;11273:10;11267:17;;;;;;;;;;;;;;;:35;;:42;;;;:47;11263:102;;;11337:5;:17;11343:10;11337:17;;;;;;;;;;;;;;;;11330:24;;;;;;;;;;;;;;:::i;:::-;;;11263:102;11398:10;11375:52;;;11410:16;11375:52;;;;;;;;;;;;;;;;;;;;;;;;10328:1106;;;;;;;;;;;:::o;6890:325::-;6972:7;6995:9;7023:10;7007:1;6995:13;;7036:1;7023:14;;7018:173;7044:5;:13;7050:6;7044:13;;;;;;;;;;;;;;;:31;;:38;;;;7039:2;:43;7018:173;;;7108:32;7129:6;7137:2;7108:20;:32::i;:::-;7104:77;;;7165:1;7160:6;;;;7104:77;7084:4;;;;;;;7018:173;;;7207:1;7200:8;;6890:325;;;;;:::o;995:28::-;;;;;;;;;;;;;:::o;5834:214::-;5934:6;;:::i;:::-;5917;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;5963:5;:13;5969:6;5963:13;;;;;;;;;;;;;;;:31;;6034:1;5995:5;:13;6001:6;5995:13;;;;;;;;;;;;;;;:31;;:38;;;;:40;5963:73;;;;;;;;;;;;;;;;;;;;:78;;5956:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5834:214;;;;:::o;1716:289::-;1813:4;1833:19;;:::i;:::-;1899:16;1833:56;;;;;;;;;;;;;;;;;;;;1928:6;1936:4;1918:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1899:42:4;;1991:6;;;;;;;;;;;1959:38;;:28;1969:8;1979:1;1982;1985;1959:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1951:47;;1716:289;;;;;;;;:::o;6625:157::-;6707:7;6737:5;:13;6743:6;6737:13;;;;;;;;;;;;;;;:31;;:38;;;;6730:45;;6625:157;;;:::o;4858:357::-;5028:4;5034:7;5043:4;5063:24;5012:6;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;5100:7;5109:5;5116:4;5122:8;5132:3;5090:46;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;36:153;66:2;61:3;58:2;51:6;36:153;;;182:3;176:5;171:3;164:6;98:2;93:3;89;82:19;;123:2;118:3;114;107:19;;148:2;143:3;139;132:19;;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;5063:73:4;;5153:55;5183:6;5191:16;5153:29;:55::i;:::-;5146:62;;;;;;4858:357;;;;;;;;;;;;:::o;2990:434::-;3111:4;3131:24;3094:6;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;3158:5;:13;3164:6;3158:13;;;;;;;;;;;;;;;:31;;3190:12;3158:45;;;;;;;;;;;;;;;;;;;;:62;;;3131:89;;3255:3;3235:23;;:16;:23;;;;3231:66;;;3281:5;3274:12;;;;3231:66;3416:1;3314:20;:39;3354:8;;;;;;;;;;;:17;;;3380:4;3387:6;3395:16;3354:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3314:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:103;3307:110;;1686:1;2990:434;;;;;;:::o;7785:752::-;7910:11;;:::i;:::-;7931:21;7962:25;7997:24;8038:26;7884:6;1657:18;1668:6;1657:10;:18::i;:::-;1649:27;;;;;;;;8067:20;:39;8107:8;;;;;;;;;;;:17;;;8146:4;8165:6;8185:5;:13;8191:6;8185:13;;;;;;;;;;;;;;;:31;;8217:12;8185:45;;;;;;;;;;;;;;;;;;;;:62;;;8107:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8067:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8038:220;;8289:5;:13;8295:6;8289:13;;;;;;;;;;;;;;;:31;;8321:12;8289:45;;;;;;;;;;;;;;;;;;;;:50;;8353:5;:13;8359:6;8353:13;;;;;;;;;;;;;;;:31;;8385:12;8353:45;;;;;;;;;;;;;;;;;;;;:59;;;8426:18;8458:5;:13;8464:6;8458:13;;;;;;;;;;;;;;;:31;;8490:12;8458:45;;;;;;;;;;;;;;;;;;;;:62;;;8268:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7785:752;;;;;;;;;:::o;171:12462::-;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity 0.4.19;\n\nimport \"./EthereumClaimsRegistryInterface.sol\";\nimport \"./PhysicalAddressClaim.sol\";\nimport \"./ERC20.sol\";\n\n\n// Checks -> Effects -> Interactions\ncontract ProofOfPhysicalAddress {\n address public owner;\n address public signer;\n EthereumClaimsRegistryInterface public registry;\n\n // Main structures:\n struct PhysicalAddress {\n string name;\n\n string country;\n string state;\n string city;\n string location;\n string zip;\n\n uint256 creationBlock;\n bytes32 keccakIdentifier;\n bytes32 confirmationCodeSha3;\n }\n\n function ProofOfPhysicalAddress(address _registry) public\n {\n owner = msg.sender;\n signer = owner;\n registry = EthereumClaimsRegistryInterface(_registry);\n }\n\n struct User {\n uint256 creationBlock;\n PhysicalAddress[] physicalAddresses;\n }\n\n mapping (address => User) public users;\n\n // Stats:\n\n uint64 public totalUsers;\n uint64 public totalAddresses;\n uint64 public totalConfirmed;\n\n // Events:\n\n event LogSignerChanged(address newSigner);\n event LogRegistryChanged(address newRegistry);\n event LogAddressRegistered(address indexed wallet, bytes32 keccakIdentifier);\n event LogAddressUnregistered(address indexed wallet, bytes32 keccakIdentifier);\n event LogAddressConfirmed(address indexed wallet, bytes32 keccakIdentifier);\n event LogClaimedTokens(address token, address to, uint256 amount);\n\n // Modifiers:\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n modifier checkUserExists(address wallet) {\n require(userExists(wallet));\n _;\n }\n\n // Helpers:\n function signerIsValid(bytes32 data, uint8 v, bytes32 r, bytes32 s)\n public constant returns (bool)\n {\n bytes memory prefix = \"\\x19Ethereum Signed Message:\\n32\";\n bytes32 prefixed = keccak256(prefix, data);\n return (ecrecover(prefixed, v, r, s) == signer);\n }\n\n // Methods:\n // set address that is used on server-side to calculate signatures\n // and on contract-side to verify them\n function setSigner(address newSigner) public onlyOwner {\n signer = newSigner;\n LogSignerChanged(newSigner);\n }\n\n function setRegistry(address newRegistry) public onlyOwner {\n registry = EthereumClaimsRegistryInterface(newRegistry);\n LogRegistryChanged(newRegistry);\n }\n\n // withdraw specified amount of eth in wei\n function withdrawSome(uint256 amountWei)\n public onlyOwner\n {\n require(address(this).balance >= amountWei);\n owner.transfer(amountWei);\n }\n\n // withdraw all available eth\n function withdrawAll()\n public onlyOwner\n {\n require(address(this).balance > 0);\n owner.transfer(address(this).balance);\n }\n\n function userExists(address wallet)\n public constant returns (bool)\n {\n return (users[wallet].creationBlock > 0);\n }\n\n function userAddressConfirmed(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (bool)\n {\n bytes32 keccakIdentifier = users[wallet].physicalAddresses[addressIndex].keccakIdentifier;\n\n if (keccakIdentifier == 0x0) {\n return false;\n }\n\n return PhysicalAddressClaim.decodeConfirmation(registry.getClaim(address(this), wallet, keccakIdentifier)) > 0;\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByCreationBlock(address wallet, uint256 creationBlock)\n public constant checkUserExists(wallet) returns (bool, uint256, bool)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].creationBlock == creationBlock) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByConfirmationCode(\n address wallet,\n bytes32 confirmationCodeSha3\n )\n public\n constant\n checkUserExists(wallet)\n returns(bool, uint256, bool, bytes32)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].confirmationCodeSha3 == confirmationCodeSha3) {\n return (\n true,\n ai,\n userAddressConfirmed(wallet, ai),\n users[wallet].physicalAddresses[ai].keccakIdentifier\n );\n }\n }\n return (false, 0, false, 0x0);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByAddress(address wallet, string country, string state, string city, string location, string zip)\n public constant checkUserExists(wallet) returns(bool, uint256, bool)\n {\n bytes32 keccakIdentifier = keccak256(country, state, city, location, zip);\n return userAddressByKeccakIdentifier(wallet, keccakIdentifier);\n }\n\n // returns (found/not found, index if found/0 if not found, confirmed/not confirmed)\n function userAddressByKeccakIdentifier(address wallet, bytes32 keccakIdentifier)\n public constant checkUserExists(wallet) returns(bool, uint256, bool)\n {\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (users[wallet].physicalAddresses[ai].keccakIdentifier == keccakIdentifier) {\n return (true, ai, userAddressConfirmed(wallet, ai));\n }\n }\n return (false, 0, false);\n }\n\n // returns last name submitted to PoPA contract\n function userLastSubmittedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n return users[wallet].physicalAddresses[users[wallet].physicalAddresses.length-1].name;\n }\n\n // returns name from the last confirmed address. If no addresses were confirmed returns ''\n function userLastConfirmedName(address wallet)\n public constant checkUserExists(wallet) returns (string)\n {\n for (uint256 ai = users[wallet].physicalAddresses.length; ai > 0;) {\n ai--;\n if (userAddressConfirmed(wallet, ai)) {\n return users[wallet].physicalAddresses[ai].name;\n }\n }\n return \"\";\n }\n\n // returns how many addresses there are in PoPA contract. If user does not exist, returns 0\n function userSubmittedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n return users[wallet].physicalAddresses.length;\n }\n\n // returns how many addresses from PoPA contract are confirmed. If user does not exist, returns 0\n function userConfirmedAddressesCount(address wallet)\n public constant returns (uint256)\n {\n uint256 c = 0;\n for (uint256 ai = 0; ai < users[wallet].physicalAddresses.length; ai++) {\n if (userAddressConfirmed(wallet, ai)) {\n c += 1;\n }\n }\n return c;\n }\n\n function userAddress(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string country, string state, string city, string location, string zip)\n {\n return (\n users[wallet].physicalAddresses[addressIndex].country,\n users[wallet].physicalAddresses[addressIndex].state,\n users[wallet].physicalAddresses[addressIndex].city,\n users[wallet].physicalAddresses[addressIndex].location,\n users[wallet].physicalAddresses[addressIndex].zip\n );\n }\n\n function userAddressInfo(address wallet, uint256 addressIndex)\n public constant checkUserExists(wallet) returns (\n string name,\n uint256 creationBlock,\n uint256 confirmationBlock,\n bytes32 keccakIdentifier\n ) {\n uint256 _confirmationBlock = PhysicalAddressClaim.decodeConfirmation(registry.getClaim(\n address(this),\n wallet,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier)\n );\n return (\n users[wallet].physicalAddresses[addressIndex].name,\n users[wallet].physicalAddresses[addressIndex].creationBlock,\n _confirmationBlock,\n users[wallet].physicalAddresses[addressIndex].keccakIdentifier\n );\n }\n\n // Main methods:\n function registerAddress(\n string name,\n string country, string state, string city, string location, string zip,\n uint256 priceWei,\n bytes32 confirmationCodeSha3, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public payable\n {\n require(bytes(name).length > 0);\n require(bytes(country).length > 0);\n require(bytes(state).length > 0);\n require(bytes(city).length > 0);\n require(bytes(location).length > 0);\n require(bytes(zip).length > 0);\n require(msg.value >= priceWei);\n\n bytes32 data = keccak256(\n msg.sender,\n name,\n country,\n state,\n city,\n location,\n zip,\n priceWei,\n confirmationCodeSha3\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n if (userExists(msg.sender)) {\n // check if this address is already registered\n bool found;\n (found, , ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n\n require(!found);\n } else {\n // new user\n users[msg.sender].creationBlock = block.number;\n\n totalUsers += 1;\n }\n\n PhysicalAddress memory pa;\n\n pa.name = name;\n pa.country = country;\n pa.state = state;\n pa.city = city;\n pa.location = location;\n pa.zip = zip;\n pa.creationBlock = block.number;\n pa.confirmationCodeSha3 = confirmationCodeSha3;\n pa.keccakIdentifier = keccak256(country, state, city, location, zip);\n users[msg.sender].physicalAddresses.push(pa);\n\n totalAddresses += 1;\n\n LogAddressRegistered(msg.sender, pa.keccakIdentifier);\n }\n\n function unregisterAddress(string country, string state, string city, string location, string zip)\n public checkUserExists(msg.sender)\n {\n bool found;\n uint256 index;\n (found, index, ) = userAddressByAddress(msg.sender, country, state, city, location, zip);\n require(found);\n\n bytes32 keccakIdentifier = users[msg.sender].physicalAddresses[index].keccakIdentifier;\n registry.removeClaim(\n address(this),\n msg.sender,\n keccakIdentifier\n );\n\n // Remove physical address from list\n uint256 length = users[msg.sender].physicalAddresses.length;\n\n for (uint256 i = index; i < length - 1; i++) {\n users[msg.sender].physicalAddresses[i] = users[msg.sender].physicalAddresses[i+1];\n }\n\n delete users[msg.sender].physicalAddresses[length - 1];\n users[msg.sender].physicalAddresses.length--;\n\n if (users[msg.sender].physicalAddresses.length == 0) {\n delete users[msg.sender];\n }\n\n LogAddressUnregistered(msg.sender, keccakIdentifier);\n }\n\n function confirmAddress(string confirmationCodePlain, uint8 sigV, bytes32 sigR, bytes32 sigS)\n public checkUserExists(msg.sender)\n {\n require(bytes(confirmationCodePlain).length > 0);\n\n bytes32 data = keccak256(\n msg.sender,\n confirmationCodePlain\n );\n require(signerIsValid(data, sigV, sigR, sigS));\n\n bool found;\n uint ai;\n bool confirmed;\n bytes32 keccakIdentifier;\n (found, ai, confirmed, keccakIdentifier) = userAddressByConfirmationCode(\n msg.sender,\n keccak256(confirmationCodePlain)\n );\n require(found);\n require(!confirmed);\n\n registry.setClaim(msg.sender, keccakIdentifier, PhysicalAddressClaim.encode(block.number));\n totalConfirmed += 1;\n\n LogAddressConfirmed(msg.sender, keccakIdentifier);\n }\n\n function claimTokens(address _token, address _to) public onlyOwner {\n require(_token != address(0));\n require(_to != address(0));\n\n ERC20 token = ERC20(_token);\n uint256 balance = token.balanceOf(this);\n token.transfer(_to, balance);\n LogClaimedTokens(_token, _to, balance);\n }\n}\n", + "sourcePath": "/Users/matiasgaratortiz/Github/poa-popa/blockchain/contracts/ProofOfPhysicalAddress.sol", "ast": { "attributes": { - "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/ProofOfPhysicalAddress.sol", + "absolutePath": "/Users/matiasgaratortiz/Github/poa-popa/blockchain/contracts/ProofOfPhysicalAddress.sol", "exportedSymbols": { "ProofOfPhysicalAddress": [ - 1583 + 1678 ] } }, @@ -712,40 +783,55 @@ ".19" ] }, - "id": 369, + "id": 381, "name": "PragmaDirective", "src": "0:23:4" }, { "attributes": { - "SourceUnit": 194, - "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/EthereumClaimsRegistryInterface.sol", + "SourceUnit": 263, + "absolutePath": "/Users/matiasgaratortiz/Github/poa-popa/blockchain/contracts/EthereumClaimsRegistryInterface.sol", "file": "./EthereumClaimsRegistryInterface.sol", - "scope": 1584, + "scope": 1679, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 370, + "id": 382, "name": "ImportDirective", "src": "25:47:4" }, { "attributes": { - "SourceUnit": 368, - "absolutePath": "/home/fvictorio/repos/poa-popa/blockchain/contracts/PhysicalAddressClaim.sol", + "SourceUnit": 380, + "absolutePath": "/Users/matiasgaratortiz/Github/poa-popa/blockchain/contracts/PhysicalAddressClaim.sol", "file": "./PhysicalAddressClaim.sol", - "scope": 1584, + "scope": 1679, "symbolAliases": [ null ], "unitAlias": "" }, - "id": 371, + "id": 383, "name": "ImportDirective", "src": "73:36:4" }, + { + "attributes": { + "SourceUnit": 69, + "absolutePath": "/Users/matiasgaratortiz/Github/poa-popa/blockchain/contracts/ERC20.sol", + "file": "./ERC20.sol", + "scope": 1679, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 384, + "name": "ImportDirective", + "src": "110:21:4" + }, { "attributes": { "baseContracts": [ @@ -758,17 +844,17 @@ "documentation": null, "fullyImplemented": true, "linearizedBaseContracts": [ - 1583 + 1678 ], "name": "ProofOfPhysicalAddress", - "scope": 1584 + "scope": 1679 }, "children": [ { "attributes": { "constant": false, "name": "owner", - "scope": 1583, + "scope": 1678, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -781,20 +867,20 @@ "name": "address", "type": "address" }, - "id": 372, + "id": 385, "name": "ElementaryTypeName", - "src": "187:7:4" + "src": "209:7:4" } ], - "id": 373, + "id": 386, "name": "VariableDeclaration", - "src": "187:20:4" + "src": "209:20:4" }, { "attributes": { "constant": false, "name": "signer", - "scope": 1583, + "scope": 1678, "stateVariable": true, "storageLocation": "default", "type": "address", @@ -807,20 +893,20 @@ "name": "address", "type": "address" }, - "id": 374, + "id": 387, "name": "ElementaryTypeName", - "src": "213:7:4" + "src": "235:7:4" } ], - "id": 375, + "id": 388, "name": "VariableDeclaration", - "src": "213:21:4" + "src": "235:21:4" }, { "attributes": { "constant": false, "name": "registry", - "scope": 1583, + "scope": 1678, "stateVariable": true, "storageLocation": "default", "type": "contract EthereumClaimsRegistryInterface", @@ -832,23 +918,23 @@ "attributes": { "contractScope": null, "name": "EthereumClaimsRegistryInterface", - "referencedDeclaration": 193, + "referencedDeclaration": 262, "type": "contract EthereumClaimsRegistryInterface" }, - "id": 376, + "id": 389, "name": "UserDefinedTypeName", - "src": "240:31:4" + "src": "262:31:4" } ], - "id": 377, + "id": 390, "name": "VariableDeclaration", - "src": "240:47:4" + "src": "262:47:4" }, { "attributes": { "canonicalName": "ProofOfPhysicalAddress.PhysicalAddress", "name": "PhysicalAddress", - "scope": 1583, + "scope": 1678, "visibility": "public" }, "children": [ @@ -856,7 +942,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 396, + "scope": 409, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -869,20 +955,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 378, + "id": 391, "name": "ElementaryTypeName", - "src": "351:6:4" + "src": "373:6:4" } ], - "id": 379, + "id": 392, "name": "VariableDeclaration", - "src": "351:11:4" + "src": "373:11:4" }, { "attributes": { "constant": false, "name": "country", - "scope": 396, + "scope": 409, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -895,20 +981,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 380, + "id": 393, "name": "ElementaryTypeName", - "src": "373:6:4" + "src": "395:6:4" } ], - "id": 381, + "id": 394, "name": "VariableDeclaration", - "src": "373:14:4" + "src": "395:14:4" }, { "attributes": { "constant": false, "name": "state", - "scope": 396, + "scope": 409, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -921,20 +1007,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 382, + "id": 395, "name": "ElementaryTypeName", - "src": "397:6:4" + "src": "419:6:4" } ], - "id": 383, + "id": 396, "name": "VariableDeclaration", - "src": "397:12:4" + "src": "419:12:4" }, { "attributes": { "constant": false, "name": "city", - "scope": 396, + "scope": 409, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -947,20 +1033,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 384, + "id": 397, "name": "ElementaryTypeName", - "src": "419:6:4" + "src": "441:6:4" } ], - "id": 385, + "id": 398, "name": "VariableDeclaration", - "src": "419:11:4" + "src": "441:11:4" }, { "attributes": { "constant": false, "name": "location", - "scope": 396, + "scope": 409, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -973,20 +1059,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 386, + "id": 399, "name": "ElementaryTypeName", - "src": "440:6:4" + "src": "462:6:4" } ], - "id": 387, + "id": 400, "name": "VariableDeclaration", - "src": "440:15:4" + "src": "462:15:4" }, { "attributes": { "constant": false, "name": "zip", - "scope": 396, + "scope": 409, "stateVariable": false, "storageLocation": "default", "type": "string storage pointer", @@ -999,20 +1085,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 388, + "id": 401, "name": "ElementaryTypeName", - "src": "465:6:4" + "src": "487:6:4" } ], - "id": 389, + "id": 402, "name": "VariableDeclaration", - "src": "465:10:4" + "src": "487:10:4" }, { "attributes": { "constant": false, "name": "creationBlock", - "scope": 396, + "scope": 409, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1025,20 +1111,20 @@ "name": "uint256", "type": "uint256" }, - "id": 390, + "id": 403, "name": "ElementaryTypeName", - "src": "486:7:4" + "src": "508:7:4" } ], - "id": 391, + "id": 404, "name": "VariableDeclaration", - "src": "486:21:4" + "src": "508:21:4" }, { "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 396, + "scope": 409, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1051,20 +1137,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 392, + "id": 405, "name": "ElementaryTypeName", - "src": "517:7:4" + "src": "539:7:4" } ], - "id": 393, + "id": 406, "name": "VariableDeclaration", - "src": "517:24:4" + "src": "539:24:4" }, { "attributes": { "constant": false, "name": "confirmationCodeSha3", - "scope": 396, + "scope": 409, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1077,19 +1163,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 394, + "id": 407, "name": "ElementaryTypeName", - "src": "551:7:4" + "src": "573:7:4" } ], - "id": 395, + "id": 408, "name": "VariableDeclaration", - "src": "551:28:4" + "src": "573:28:4" } ], - "id": 396, + "id": 409, "name": "StructDefinition", - "src": "318:268:4" + "src": "340:268:4" }, { "attributes": { @@ -1101,7 +1187,7 @@ ], "name": "ProofOfPhysicalAddress", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1113,7 +1199,7 @@ "attributes": { "constant": false, "name": "_registry", - "scope": 417, + "scope": 430, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1126,19 +1212,19 @@ "name": "address", "type": "address" }, - "id": 397, + "id": 410, "name": "ElementaryTypeName", - "src": "624:7:4" + "src": "646:7:4" } ], - "id": 398, + "id": 411, "name": "VariableDeclaration", - "src": "624:17:4" + "src": "646:17:4" } ], - "id": 399, + "id": 412, "name": "ParameterList", - "src": "623:19:4" + "src": "645:19:4" }, { "attributes": { @@ -1147,9 +1233,9 @@ ] }, "children": [], - "id": 400, + "id": 413, "name": "ParameterList", - "src": "654:0:4" + "src": "676:0:4" }, { "children": [ @@ -1172,13 +1258,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 373, + "referencedDeclaration": 386, "type": "address", "value": "owner" }, - "id": 401, + "id": 414, "name": "Identifier", - "src": "664:5:4" + "src": "686:5:4" }, { "attributes": { @@ -1198,28 +1284,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 402, + "id": 415, "name": "Identifier", - "src": "672:3:4" + "src": "694:3:4" } ], - "id": 403, + "id": 416, "name": "MemberAccess", - "src": "672:10:4" + "src": "694:10:4" } ], - "id": 404, + "id": 417, "name": "Assignment", - "src": "664:18:4" + "src": "686:18:4" } ], - "id": 405, + "id": 418, "name": "ExpressionStatement", - "src": "664:18:4" + "src": "686:18:4" }, { "children": [ @@ -1240,13 +1326,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 375, + "referencedDeclaration": 388, "type": "address", "value": "signer" }, - "id": 406, + "id": 419, "name": "Identifier", - "src": "692:6:4" + "src": "714:6:4" }, { "attributes": { @@ -1254,23 +1340,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 373, + "referencedDeclaration": 386, "type": "address", "value": "owner" }, - "id": 407, + "id": 420, "name": "Identifier", - "src": "701:5:4" + "src": "723:5:4" } ], - "id": 408, + "id": 421, "name": "Assignment", - "src": "692:14:4" + "src": "714:14:4" } ], - "id": 409, + "id": 422, "name": "ExpressionStatement", - "src": "692:14:4" + "src": "714:14:4" }, { "children": [ @@ -1291,13 +1377,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 377, + "referencedDeclaration": 390, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 410, + "id": 423, "name": "Identifier", - "src": "716:8:4" + "src": "738:8:4" }, { "attributes": { @@ -1325,13 +1411,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 193, + "referencedDeclaration": 262, "type": "type(contract EthereumClaimsRegistryInterface)", "value": "EthereumClaimsRegistryInterface" }, - "id": 411, + "id": 424, "name": "Identifier", - "src": "727:31:4" + "src": "749:31:4" }, { "attributes": { @@ -1339,44 +1425,44 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 398, + "referencedDeclaration": 411, "type": "address", "value": "_registry" }, - "id": 412, + "id": 425, "name": "Identifier", - "src": "759:9:4" + "src": "781:9:4" } ], - "id": 413, + "id": 426, "name": "FunctionCall", - "src": "727:42:4" + "src": "749:42:4" } ], - "id": 414, + "id": 427, "name": "Assignment", - "src": "716:53:4" + "src": "738:53:4" } ], - "id": 415, + "id": 428, "name": "ExpressionStatement", - "src": "716:53:4" + "src": "738:53:4" } ], - "id": 416, + "id": 429, "name": "Block", - "src": "654:122:4" + "src": "676:122:4" } ], - "id": 417, + "id": 430, "name": "FunctionDefinition", - "src": "592:184:4" + "src": "614:184:4" }, { "attributes": { "canonicalName": "ProofOfPhysicalAddress.User", "name": "User", - "scope": 1583, + "scope": 1678, "visibility": "public" }, "children": [ @@ -1384,7 +1470,7 @@ "attributes": { "constant": false, "name": "creationBlock", - "scope": 423, + "scope": 436, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -1397,20 +1483,20 @@ "name": "uint256", "type": "uint256" }, - "id": 418, + "id": 431, "name": "ElementaryTypeName", - "src": "804:7:4" + "src": "826:7:4" } ], - "id": 419, + "id": 432, "name": "VariableDeclaration", - "src": "804:21:4" + "src": "826:21:4" }, { "attributes": { "constant": false, "name": "physicalAddresses", - "scope": 423, + "scope": 436, "stateVariable": false, "storageLocation": "default", "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage pointer", @@ -1428,33 +1514,33 @@ "attributes": { "contractScope": null, "name": "PhysicalAddress", - "referencedDeclaration": 396, + "referencedDeclaration": 409, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage pointer" }, - "id": 420, + "id": 433, "name": "UserDefinedTypeName", - "src": "835:15:4" + "src": "857:15:4" } ], - "id": 421, + "id": 434, "name": "ArrayTypeName", - "src": "835:17:4" + "src": "857:17:4" } ], - "id": 422, + "id": 435, "name": "VariableDeclaration", - "src": "835:35:4" + "src": "857:35:4" } ], - "id": 423, + "id": 436, "name": "StructDefinition", - "src": "782:95:4" + "src": "804:95:4" }, { "attributes": { "constant": false, "name": "users", - "scope": 1583, + "scope": 1678, "stateVariable": true, "storageLocation": "default", "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", @@ -1472,36 +1558,36 @@ "name": "address", "type": "address" }, - "id": 424, + "id": 437, "name": "ElementaryTypeName", - "src": "892:7:4" + "src": "914:7:4" }, { "attributes": { "contractScope": null, "name": "User", - "referencedDeclaration": 423, + "referencedDeclaration": 436, "type": "struct ProofOfPhysicalAddress.User storage pointer" }, - "id": 425, + "id": 438, "name": "UserDefinedTypeName", - "src": "903:4:4" + "src": "925:4:4" } ], - "id": 426, + "id": 439, "name": "Mapping", - "src": "883:25:4" + "src": "905:25:4" } ], - "id": 427, + "id": 440, "name": "VariableDeclaration", - "src": "883:38:4" + "src": "905:38:4" }, { "attributes": { "constant": false, "name": "totalUsers", - "scope": 1583, + "scope": 1678, "stateVariable": true, "storageLocation": "default", "type": "uint64", @@ -1514,20 +1600,20 @@ "name": "uint64", "type": "uint64" }, - "id": 428, + "id": 441, "name": "ElementaryTypeName", - "src": "943:6:4" + "src": "965:6:4" } ], - "id": 429, + "id": 442, "name": "VariableDeclaration", - "src": "943:24:4" + "src": "965:24:4" }, { "attributes": { "constant": false, "name": "totalAddresses", - "scope": 1583, + "scope": 1678, "stateVariable": true, "storageLocation": "default", "type": "uint64", @@ -1540,20 +1626,20 @@ "name": "uint64", "type": "uint64" }, - "id": 430, + "id": 443, "name": "ElementaryTypeName", - "src": "973:6:4" + "src": "995:6:4" } ], - "id": 431, + "id": 444, "name": "VariableDeclaration", - "src": "973:28:4" + "src": "995:28:4" }, { "attributes": { "constant": false, "name": "totalConfirmed", - "scope": 1583, + "scope": 1678, "stateVariable": true, "storageLocation": "default", "type": "uint64", @@ -1566,14 +1652,14 @@ "name": "uint64", "type": "uint64" }, - "id": 432, + "id": 445, "name": "ElementaryTypeName", - "src": "1007:6:4" + "src": "1029:6:4" } ], - "id": 433, + "id": 446, "name": "VariableDeclaration", - "src": "1007:28:4" + "src": "1029:28:4" }, { "attributes": { @@ -1588,7 +1674,7 @@ "constant": false, "indexed": false, "name": "newSigner", - "scope": 437, + "scope": 450, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1601,24 +1687,24 @@ "name": "address", "type": "address" }, - "id": 434, + "id": 447, "name": "ElementaryTypeName", - "src": "1081:7:4" + "src": "1103:7:4" } ], - "id": 435, + "id": 448, "name": "VariableDeclaration", - "src": "1081:17:4" + "src": "1103:17:4" } ], - "id": 436, + "id": 449, "name": "ParameterList", - "src": "1080:19:4" + "src": "1102:19:4" } ], - "id": 437, + "id": 450, "name": "EventDefinition", - "src": "1058:42:4" + "src": "1080:42:4" }, { "attributes": { @@ -1633,7 +1719,7 @@ "constant": false, "indexed": false, "name": "newRegistry", - "scope": 441, + "scope": 454, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1646,24 +1732,24 @@ "name": "address", "type": "address" }, - "id": 438, + "id": 451, "name": "ElementaryTypeName", - "src": "1130:7:4" + "src": "1152:7:4" } ], - "id": 439, + "id": 452, "name": "VariableDeclaration", - "src": "1130:19:4" + "src": "1152:19:4" } ], - "id": 440, + "id": 453, "name": "ParameterList", - "src": "1129:21:4" + "src": "1151:21:4" } ], - "id": 441, + "id": 454, "name": "EventDefinition", - "src": "1105:46:4" + "src": "1127:46:4" }, { "attributes": { @@ -1678,7 +1764,7 @@ "constant": false, "indexed": true, "name": "wallet", - "scope": 447, + "scope": 460, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1691,21 +1777,21 @@ "name": "address", "type": "address" }, - "id": 442, + "id": 455, "name": "ElementaryTypeName", - "src": "1183:7:4" + "src": "1205:7:4" } ], - "id": 443, + "id": 456, "name": "VariableDeclaration", - "src": "1183:22:4" + "src": "1205:22:4" }, { "attributes": { "constant": false, "indexed": false, "name": "keccakIdentifier", - "scope": 447, + "scope": 460, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1718,24 +1804,24 @@ "name": "bytes32", "type": "bytes32" }, - "id": 444, + "id": 457, "name": "ElementaryTypeName", - "src": "1207:7:4" + "src": "1229:7:4" } ], - "id": 445, + "id": 458, "name": "VariableDeclaration", - "src": "1207:24:4" + "src": "1229:24:4" } ], - "id": 446, + "id": 459, "name": "ParameterList", - "src": "1182:50:4" + "src": "1204:50:4" } ], - "id": 447, + "id": 460, "name": "EventDefinition", - "src": "1156:77:4" + "src": "1178:77:4" }, { "attributes": { @@ -1750,7 +1836,7 @@ "constant": false, "indexed": true, "name": "wallet", - "scope": 453, + "scope": 466, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1763,21 +1849,21 @@ "name": "address", "type": "address" }, - "id": 448, + "id": 461, "name": "ElementaryTypeName", - "src": "1267:7:4" + "src": "1289:7:4" } ], - "id": 449, + "id": 462, "name": "VariableDeclaration", - "src": "1267:22:4" + "src": "1289:22:4" }, { "attributes": { "constant": false, "indexed": false, "name": "keccakIdentifier", - "scope": 453, + "scope": 466, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1790,24 +1876,24 @@ "name": "bytes32", "type": "bytes32" }, - "id": 450, + "id": 463, "name": "ElementaryTypeName", - "src": "1291:7:4" + "src": "1313:7:4" } ], - "id": 451, + "id": 464, "name": "VariableDeclaration", - "src": "1291:24:4" + "src": "1313:24:4" } ], - "id": 452, + "id": 465, "name": "ParameterList", - "src": "1266:50:4" + "src": "1288:50:4" } ], - "id": 453, + "id": 466, "name": "EventDefinition", - "src": "1238:79:4" + "src": "1260:79:4" }, { "attributes": { @@ -1822,7 +1908,7 @@ "constant": false, "indexed": true, "name": "wallet", - "scope": 459, + "scope": 472, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -1835,21 +1921,21 @@ "name": "address", "type": "address" }, - "id": 454, + "id": 467, "name": "ElementaryTypeName", - "src": "1348:7:4" + "src": "1370:7:4" } ], - "id": 455, + "id": 468, "name": "VariableDeclaration", - "src": "1348:22:4" + "src": "1370:22:4" }, { "attributes": { "constant": false, "indexed": false, "name": "keccakIdentifier", - "scope": 459, + "scope": 472, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -1862,24 +1948,123 @@ "name": "bytes32", "type": "bytes32" }, - "id": 456, + "id": 469, + "name": "ElementaryTypeName", + "src": "1394:7:4" + } + ], + "id": 470, + "name": "VariableDeclaration", + "src": "1394:24:4" + } + ], + "id": 471, + "name": "ParameterList", + "src": "1369:50:4" + } + ], + "id": 472, + "name": "EventDefinition", + "src": "1344:76:4" + }, + { + "attributes": { + "anonymous": false, + "name": "LogClaimedTokens" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "name": "token", + "scope": 480, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 473, + "name": "ElementaryTypeName", + "src": "1448:7:4" + } + ], + "id": 474, + "name": "VariableDeclaration", + "src": "1448:13:4" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "to", + "scope": 480, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 475, + "name": "ElementaryTypeName", + "src": "1463:7:4" + } + ], + "id": 476, + "name": "VariableDeclaration", + "src": "1463:10:4" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "amount", + "scope": 480, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 477, "name": "ElementaryTypeName", - "src": "1372:7:4" + "src": "1475:7:4" } ], - "id": 457, + "id": 478, "name": "VariableDeclaration", - "src": "1372:24:4" + "src": "1475:14:4" } ], - "id": 458, + "id": 479, "name": "ParameterList", - "src": "1347:50:4" + "src": "1447:43:4" } ], - "id": 459, + "id": 480, "name": "EventDefinition", - "src": "1322:76:4" + "src": "1425:66:4" }, { "attributes": { @@ -1894,9 +2079,9 @@ ] }, "children": [], - "id": 460, + "id": 481, "name": "ParameterList", - "src": "1440:2:4" + "src": "1533:2:4" }, { "children": [ @@ -1928,13 +2113,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 461, + "id": 482, "name": "Identifier", - "src": "1453:7:4" + "src": "1546:7:4" }, { "attributes": { @@ -1969,18 +2154,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 462, + "id": 483, "name": "Identifier", - "src": "1461:3:4" + "src": "1554:3:4" } ], - "id": 463, + "id": 484, "name": "MemberAccess", - "src": "1461:10:4" + "src": "1554:10:4" }, { "attributes": { @@ -1988,43 +2173,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 373, + "referencedDeclaration": 386, "type": "address", "value": "owner" }, - "id": 464, + "id": 485, "name": "Identifier", - "src": "1475:5:4" + "src": "1568:5:4" } ], - "id": 465, + "id": 486, "name": "BinaryOperation", - "src": "1461:19:4" + "src": "1554:19:4" } ], - "id": 466, + "id": 487, "name": "FunctionCall", - "src": "1453:28:4" + "src": "1546:28:4" } ], - "id": 467, + "id": 488, "name": "ExpressionStatement", - "src": "1453:28:4" + "src": "1546:28:4" }, { - "id": 468, + "id": 489, "name": "PlaceholderStatement", - "src": "1491:1:4" + "src": "1584:1:4" } ], - "id": 469, + "id": 490, "name": "Block", - "src": "1443:56:4" + "src": "1536:56:4" } ], - "id": 470, + "id": 491, "name": "ModifierDefinition", - "src": "1422:77:4" + "src": "1515:77:4" }, { "attributes": { @@ -2038,7 +2223,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 482, + "scope": 503, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2051,19 +2236,19 @@ "name": "address", "type": "address" }, - "id": 471, + "id": 492, "name": "ElementaryTypeName", - "src": "1530:7:4" + "src": "1623:7:4" } ], - "id": 472, + "id": 493, "name": "VariableDeclaration", - "src": "1530:14:4" + "src": "1623:14:4" } ], - "id": 473, + "id": 494, "name": "ParameterList", - "src": "1529:16:4" + "src": "1622:16:4" }, { "children": [ @@ -2095,13 +2280,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 474, + "id": 495, "name": "Identifier", - "src": "1556:7:4" + "src": "1649:7:4" }, { "attributes": { @@ -2129,13 +2314,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 614, + "referencedDeclaration": 635, "type": "function (address) view returns (bool)", "value": "userExists" }, - "id": 475, + "id": 496, "name": "Identifier", - "src": "1564:10:4" + "src": "1657:10:4" }, { "attributes": { @@ -2143,43 +2328,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 472, + "referencedDeclaration": 493, "type": "address", "value": "wallet" }, - "id": 476, + "id": 497, "name": "Identifier", - "src": "1575:6:4" + "src": "1668:6:4" } ], - "id": 477, + "id": 498, "name": "FunctionCall", - "src": "1564:18:4" + "src": "1657:18:4" } ], - "id": 478, + "id": 499, "name": "FunctionCall", - "src": "1556:27:4" + "src": "1649:27:4" } ], - "id": 479, + "id": 500, "name": "ExpressionStatement", - "src": "1556:27:4" + "src": "1649:27:4" }, { - "id": 480, + "id": 501, "name": "PlaceholderStatement", - "src": "1593:1:4" + "src": "1686:1:4" } ], - "id": 481, + "id": 502, "name": "Block", - "src": "1546:55:4" + "src": "1639:55:4" } ], - "id": 482, + "id": 503, "name": "ModifierDefinition", - "src": "1505:96:4" + "src": "1598:96:4" }, { "attributes": { @@ -2191,7 +2376,7 @@ ], "name": "signerIsValid", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -2203,7 +2388,7 @@ "attributes": { "constant": false, "name": "data", - "scope": 517, + "scope": 538, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2216,20 +2401,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 483, + "id": 504, "name": "ElementaryTypeName", - "src": "1646:7:4" + "src": "1739:7:4" } ], - "id": 484, + "id": 505, "name": "VariableDeclaration", - "src": "1646:12:4" + "src": "1739:12:4" }, { "attributes": { "constant": false, "name": "v", - "scope": 517, + "scope": 538, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -2242,20 +2427,20 @@ "name": "uint8", "type": "uint8" }, - "id": 485, + "id": 506, "name": "ElementaryTypeName", - "src": "1660:5:4" + "src": "1753:5:4" } ], - "id": 486, + "id": 507, "name": "VariableDeclaration", - "src": "1660:7:4" + "src": "1753:7:4" }, { "attributes": { "constant": false, "name": "r", - "scope": 517, + "scope": 538, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2268,20 +2453,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 487, + "id": 508, "name": "ElementaryTypeName", - "src": "1669:7:4" + "src": "1762:7:4" } ], - "id": 488, + "id": 509, "name": "VariableDeclaration", - "src": "1669:9:4" + "src": "1762:9:4" }, { "attributes": { "constant": false, "name": "s", - "scope": 517, + "scope": 538, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2294,19 +2479,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 489, + "id": 510, "name": "ElementaryTypeName", - "src": "1680:7:4" + "src": "1773:7:4" } ], - "id": 490, + "id": 511, "name": "VariableDeclaration", - "src": "1680:9:4" + "src": "1773:9:4" } ], - "id": 491, + "id": 512, "name": "ParameterList", - "src": "1645:45:4" + "src": "1738:45:4" }, { "children": [ @@ -2314,7 +2499,7 @@ "attributes": { "constant": false, "name": "", - "scope": 517, + "scope": 538, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -2327,26 +2512,26 @@ "name": "bool", "type": "bool" }, - "id": 492, + "id": 513, "name": "ElementaryTypeName", - "src": "1720:4:4" + "src": "1813:4:4" } ], - "id": 493, + "id": 514, "name": "VariableDeclaration", - "src": "1720:4:4" + "src": "1813:4:4" } ], - "id": 494, + "id": 515, "name": "ParameterList", - "src": "1719:6:4" + "src": "1812:6:4" }, { "children": [ { "attributes": { "assignments": [ - 496 + 517 ] }, "children": [ @@ -2354,7 +2539,7 @@ "attributes": { "constant": false, "name": "prefix", - "scope": 517, + "scope": 538, "stateVariable": false, "storageLocation": "memory", "type": "bytes memory", @@ -2367,14 +2552,14 @@ "name": "bytes", "type": "bytes storage pointer" }, - "id": 495, + "id": 516, "name": "ElementaryTypeName", - "src": "1740:5:4" + "src": "1833:5:4" } ], - "id": 496, + "id": 517, "name": "VariableDeclaration", - "src": "1740:19:4" + "src": "1833:19:4" }, { "attributes": { @@ -2389,19 +2574,19 @@ "type": "literal_string \"\u0019Ethereum Signed Message:\n32\"", "value": "\u0019Ethereum Signed Message:\n32" }, - "id": 497, + "id": 518, "name": "Literal", - "src": "1762:34:4" + "src": "1855:34:4" } ], - "id": 498, + "id": 519, "name": "VariableDeclarationStatement", - "src": "1740:56:4" + "src": "1833:56:4" }, { "attributes": { "assignments": [ - 500 + 521 ] }, "children": [ @@ -2409,7 +2594,7 @@ "attributes": { "constant": false, "name": "prefixed", - "scope": 517, + "scope": 538, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -2422,14 +2607,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 499, + "id": 520, "name": "ElementaryTypeName", - "src": "1806:7:4" + "src": "1899:7:4" } ], - "id": 500, + "id": 521, "name": "VariableDeclaration", - "src": "1806:16:4" + "src": "1899:16:4" }, { "attributes": { @@ -2461,13 +2646,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1589, + "referencedDeclaration": 1814, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 501, + "id": 522, "name": "Identifier", - "src": "1825:9:4" + "src": "1918:9:4" }, { "attributes": { @@ -2475,13 +2660,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 496, + "referencedDeclaration": 517, "type": "bytes memory", "value": "prefix" }, - "id": 502, + "id": 523, "name": "Identifier", - "src": "1835:6:4" + "src": "1928:6:4" }, { "attributes": { @@ -2489,27 +2674,27 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 484, + "referencedDeclaration": 505, "type": "bytes32", "value": "data" }, - "id": 503, + "id": 524, "name": "Identifier", - "src": "1843:4:4" + "src": "1936:4:4" } ], - "id": 504, + "id": 525, "name": "FunctionCall", - "src": "1825:23:4" + "src": "1918:23:4" } ], - "id": 505, + "id": 526, "name": "VariableDeclarationStatement", - "src": "1806:42:4" + "src": "1899:42:4" }, { "attributes": { - "functionReturnParameters": 494 + "functionReturnParameters": 515 }, "children": [ { @@ -2576,13 +2761,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1588, + "referencedDeclaration": 1813, "type": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)", "value": "ecrecover" }, - "id": 506, + "id": 527, "name": "Identifier", - "src": "1866:9:4" + "src": "1959:9:4" }, { "attributes": { @@ -2590,13 +2775,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 500, + "referencedDeclaration": 521, "type": "bytes32", "value": "prefixed" }, - "id": 507, + "id": 528, "name": "Identifier", - "src": "1876:8:4" + "src": "1969:8:4" }, { "attributes": { @@ -2604,13 +2789,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 486, + "referencedDeclaration": 507, "type": "uint8", "value": "v" }, - "id": 508, + "id": 529, "name": "Identifier", - "src": "1886:1:4" + "src": "1979:1:4" }, { "attributes": { @@ -2618,13 +2803,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 488, + "referencedDeclaration": 509, "type": "bytes32", "value": "r" }, - "id": 509, + "id": 530, "name": "Identifier", - "src": "1889:1:4" + "src": "1982:1:4" }, { "attributes": { @@ -2632,18 +2817,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 490, + "referencedDeclaration": 511, "type": "bytes32", "value": "s" }, - "id": 510, + "id": 531, "name": "Identifier", - "src": "1892:1:4" + "src": "1985:1:4" } ], - "id": 511, + "id": 532, "name": "FunctionCall", - "src": "1866:28:4" + "src": "1959:28:4" }, { "attributes": { @@ -2651,38 +2836,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 375, + "referencedDeclaration": 388, "type": "address", "value": "signer" }, - "id": 512, + "id": 533, "name": "Identifier", - "src": "1898:6:4" + "src": "1991:6:4" } ], - "id": 513, + "id": 534, "name": "BinaryOperation", - "src": "1866:38:4" + "src": "1959:38:4" } ], - "id": 514, + "id": 535, "name": "TupleExpression", - "src": "1865:40:4" + "src": "1958:40:4" } ], - "id": 515, + "id": 536, "name": "Return", - "src": "1858:47:4" + "src": "1951:47:4" } ], - "id": 516, + "id": 537, "name": "Block", - "src": "1730:182:4" + "src": "1823:182:4" } ], - "id": 517, + "id": 538, "name": "FunctionDefinition", - "src": "1623:289:4" + "src": "1716:289:4" }, { "attributes": { @@ -2691,7 +2876,7 @@ "isConstructor": false, "name": "setSigner", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2703,7 +2888,7 @@ "attributes": { "constant": false, "name": "newSigner", - "scope": 533, + "scope": 554, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2716,19 +2901,19 @@ "name": "address", "type": "address" }, - "id": 518, + "id": 539, "name": "ElementaryTypeName", - "src": "2067:7:4" + "src": "2160:7:4" } ], - "id": 519, + "id": 540, "name": "VariableDeclaration", - "src": "2067:17:4" + "src": "2160:17:4" } ], - "id": 520, + "id": 541, "name": "ParameterList", - "src": "2066:19:4" + "src": "2159:19:4" }, { "attributes": { @@ -2737,9 +2922,9 @@ ] }, "children": [], - "id": 523, + "id": 544, "name": "ParameterList", - "src": "2103:0:4" + "src": "2196:0:4" }, { "attributes": { @@ -2754,18 +2939,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 470, + "referencedDeclaration": 491, "type": "modifier ()", "value": "onlyOwner" }, - "id": 521, + "id": 542, "name": "Identifier", - "src": "2093:9:4" + "src": "2186:9:4" } ], - "id": 522, + "id": 543, "name": "ModifierInvocation", - "src": "2093:9:4" + "src": "2186:9:4" }, { "children": [ @@ -2788,13 +2973,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 375, + "referencedDeclaration": 388, "type": "address", "value": "signer" }, - "id": 524, + "id": 545, "name": "Identifier", - "src": "2113:6:4" + "src": "2206:6:4" }, { "attributes": { @@ -2802,23 +2987,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 519, + "referencedDeclaration": 540, "type": "address", "value": "newSigner" }, - "id": 525, + "id": 546, "name": "Identifier", - "src": "2122:9:4" + "src": "2215:9:4" } ], - "id": 526, + "id": 547, "name": "Assignment", - "src": "2113:18:4" + "src": "2206:18:4" } ], - "id": 527, + "id": 548, "name": "ExpressionStatement", - "src": "2113:18:4" + "src": "2206:18:4" }, { "children": [ @@ -2848,13 +3033,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 437, + "referencedDeclaration": 450, "type": "function (address)", "value": "LogSignerChanged" }, - "id": 528, + "id": 549, "name": "Identifier", - "src": "2141:16:4" + "src": "2234:16:4" }, { "attributes": { @@ -2862,33 +3047,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 519, + "referencedDeclaration": 540, "type": "address", "value": "newSigner" }, - "id": 529, + "id": 550, "name": "Identifier", - "src": "2158:9:4" + "src": "2251:9:4" } ], - "id": 530, + "id": 551, "name": "FunctionCall", - "src": "2141:27:4" + "src": "2234:27:4" } ], - "id": 531, + "id": 552, "name": "ExpressionStatement", - "src": "2141:27:4" + "src": "2234:27:4" } ], - "id": 532, + "id": 553, "name": "Block", - "src": "2103:72:4" + "src": "2196:72:4" } ], - "id": 533, + "id": 554, "name": "FunctionDefinition", - "src": "2048:127:4" + "src": "2141:127:4" }, { "attributes": { @@ -2897,7 +3082,7 @@ "isConstructor": false, "name": "setRegistry", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -2909,7 +3094,7 @@ "attributes": { "constant": false, "name": "newRegistry", - "scope": 551, + "scope": 572, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -2922,19 +3107,19 @@ "name": "address", "type": "address" }, - "id": 534, + "id": 555, "name": "ElementaryTypeName", - "src": "2202:7:4" + "src": "2295:7:4" } ], - "id": 535, + "id": 556, "name": "VariableDeclaration", - "src": "2202:19:4" + "src": "2295:19:4" } ], - "id": 536, + "id": 557, "name": "ParameterList", - "src": "2201:21:4" + "src": "2294:21:4" }, { "attributes": { @@ -2943,9 +3128,9 @@ ] }, "children": [], - "id": 539, + "id": 560, "name": "ParameterList", - "src": "2240:0:4" + "src": "2333:0:4" }, { "attributes": { @@ -2960,18 +3145,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 470, + "referencedDeclaration": 491, "type": "modifier ()", "value": "onlyOwner" }, - "id": 537, + "id": 558, "name": "Identifier", - "src": "2230:9:4" + "src": "2323:9:4" } ], - "id": 538, + "id": 559, "name": "ModifierInvocation", - "src": "2230:9:4" + "src": "2323:9:4" }, { "children": [ @@ -2994,13 +3179,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 377, + "referencedDeclaration": 390, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 540, + "id": 561, "name": "Identifier", - "src": "2250:8:4" + "src": "2343:8:4" }, { "attributes": { @@ -3028,13 +3213,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 193, + "referencedDeclaration": 262, "type": "type(contract EthereumClaimsRegistryInterface)", "value": "EthereumClaimsRegistryInterface" }, - "id": 541, + "id": 562, "name": "Identifier", - "src": "2261:31:4" + "src": "2354:31:4" }, { "attributes": { @@ -3042,28 +3227,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 535, + "referencedDeclaration": 556, "type": "address", "value": "newRegistry" }, - "id": 542, + "id": 563, "name": "Identifier", - "src": "2293:11:4" + "src": "2386:11:4" } ], - "id": 543, + "id": 564, "name": "FunctionCall", - "src": "2261:44:4" + "src": "2354:44:4" } ], - "id": 544, + "id": 565, "name": "Assignment", - "src": "2250:55:4" + "src": "2343:55:4" } ], - "id": 545, + "id": 566, "name": "ExpressionStatement", - "src": "2250:55:4" + "src": "2343:55:4" }, { "children": [ @@ -3093,13 +3278,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 441, + "referencedDeclaration": 454, "type": "function (address)", "value": "LogRegistryChanged" }, - "id": 546, + "id": 567, "name": "Identifier", - "src": "2315:18:4" + "src": "2408:18:4" }, { "attributes": { @@ -3107,33 +3292,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 535, + "referencedDeclaration": 556, "type": "address", "value": "newRegistry" }, - "id": 547, + "id": 568, "name": "Identifier", - "src": "2334:11:4" + "src": "2427:11:4" } ], - "id": 548, + "id": 569, "name": "FunctionCall", - "src": "2315:31:4" + "src": "2408:31:4" } ], - "id": 549, + "id": 570, "name": "ExpressionStatement", - "src": "2315:31:4" + "src": "2408:31:4" } ], - "id": 550, + "id": 571, "name": "Block", - "src": "2240:113:4" + "src": "2333:113:4" } ], - "id": 551, + "id": 572, "name": "FunctionDefinition", - "src": "2181:172:4" + "src": "2274:172:4" }, { "attributes": { @@ -3142,7 +3327,7 @@ "isConstructor": false, "name": "withdrawSome", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -3154,7 +3339,7 @@ "attributes": { "constant": false, "name": "amountWei", - "scope": 574, + "scope": 595, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -3167,19 +3352,19 @@ "name": "uint256", "type": "uint256" }, - "id": 552, + "id": 573, "name": "ElementaryTypeName", - "src": "2428:7:4" + "src": "2521:7:4" } ], - "id": 553, + "id": 574, "name": "VariableDeclaration", - "src": "2428:17:4" + "src": "2521:17:4" } ], - "id": 554, + "id": 575, "name": "ParameterList", - "src": "2427:19:4" + "src": "2520:19:4" }, { "attributes": { @@ -3188,9 +3373,9 @@ ] }, "children": [], - "id": 557, + "id": 578, "name": "ParameterList", - "src": "2472:0:4" + "src": "2565:0:4" }, { "attributes": { @@ -3205,18 +3390,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 470, + "referencedDeclaration": 491, "type": "modifier ()", "value": "onlyOwner" }, - "id": 555, + "id": 576, "name": "Identifier", - "src": "2458:9:4" + "src": "2551:9:4" } ], - "id": 556, + "id": 577, "name": "ModifierInvocation", - "src": "2458:9:4" + "src": "2551:9:4" }, { "children": [ @@ -3248,13 +3433,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 558, + "id": 579, "name": "Identifier", - "src": "2482:7:4" + "src": "2575:7:4" }, { "attributes": { @@ -3302,7 +3487,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1583", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1678", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -3313,9 +3498,9 @@ "type": "type(address)", "value": "address" }, - "id": 559, + "id": 580, "name": "ElementaryTypeNameExpression", - "src": "2490:7:4" + "src": "2583:7:4" }, { "attributes": { @@ -3323,23 +3508,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1614, + "referencedDeclaration": 1839, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 560, + "id": 581, "name": "Identifier", - "src": "2498:4:4" + "src": "2591:4:4" } ], - "id": 561, + "id": 582, "name": "FunctionCall", - "src": "2490:13:4" + "src": "2583:13:4" } ], - "id": 562, + "id": 583, "name": "MemberAccess", - "src": "2490:21:4" + "src": "2583:21:4" }, { "attributes": { @@ -3347,28 +3532,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 553, + "referencedDeclaration": 574, "type": "uint256", "value": "amountWei" }, - "id": 563, + "id": 584, "name": "Identifier", - "src": "2515:9:4" + "src": "2608:9:4" } ], - "id": 564, + "id": 585, "name": "BinaryOperation", - "src": "2490:34:4" + "src": "2583:34:4" } ], - "id": 565, + "id": 586, "name": "FunctionCall", - "src": "2482:43:4" + "src": "2575:43:4" } ], - "id": 566, + "id": 587, "name": "ExpressionStatement", - "src": "2482:43:4" + "src": "2575:43:4" }, { "children": [ @@ -3410,18 +3595,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 373, + "referencedDeclaration": 386, "type": "address", "value": "owner" }, - "id": 567, + "id": 588, "name": "Identifier", - "src": "2535:5:4" + "src": "2628:5:4" } ], - "id": 569, + "id": 590, "name": "MemberAccess", - "src": "2535:14:4" + "src": "2628:14:4" }, { "attributes": { @@ -3429,33 +3614,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 553, + "referencedDeclaration": 574, "type": "uint256", "value": "amountWei" }, - "id": 570, + "id": 591, "name": "Identifier", - "src": "2550:9:4" + "src": "2643:9:4" } ], - "id": 571, + "id": 592, "name": "FunctionCall", - "src": "2535:25:4" + "src": "2628:25:4" } ], - "id": 572, + "id": 593, "name": "ExpressionStatement", - "src": "2535:25:4" + "src": "2628:25:4" } ], - "id": 573, + "id": 594, "name": "Block", - "src": "2472:95:4" + "src": "2565:95:4" } ], - "id": 574, + "id": 595, "name": "FunctionDefinition", - "src": "2406:161:4" + "src": "2499:161:4" }, { "attributes": { @@ -3464,7 +3649,7 @@ "isConstructor": false, "name": "withdrawAll", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -3477,9 +3662,9 @@ ] }, "children": [], - "id": 575, + "id": 596, "name": "ParameterList", - "src": "2627:2:4" + "src": "2720:2:4" }, { "attributes": { @@ -3488,9 +3673,9 @@ ] }, "children": [], - "id": 578, + "id": 599, "name": "ParameterList", - "src": "2655:0:4" + "src": "2748:0:4" }, { "attributes": { @@ -3505,18 +3690,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 470, + "referencedDeclaration": 491, "type": "modifier ()", "value": "onlyOwner" }, - "id": 576, + "id": 597, "name": "Identifier", - "src": "2641:9:4" + "src": "2734:9:4" } ], - "id": 577, + "id": 598, "name": "ModifierInvocation", - "src": "2641:9:4" + "src": "2734:9:4" }, { "children": [ @@ -3548,13 +3733,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 579, + "id": 600, "name": "Identifier", - "src": "2665:7:4" + "src": "2758:7:4" }, { "attributes": { @@ -3602,7 +3787,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1583", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1678", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -3613,9 +3798,9 @@ "type": "type(address)", "value": "address" }, - "id": 580, + "id": 601, "name": "ElementaryTypeNameExpression", - "src": "2673:7:4" + "src": "2766:7:4" }, { "attributes": { @@ -3623,23 +3808,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1614, + "referencedDeclaration": 1839, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 581, + "id": 602, "name": "Identifier", - "src": "2681:4:4" + "src": "2774:4:4" } ], - "id": 582, + "id": 603, "name": "FunctionCall", - "src": "2673:13:4" + "src": "2766:13:4" } ], - "id": 583, + "id": 604, "name": "MemberAccess", - "src": "2673:21:4" + "src": "2766:21:4" }, { "attributes": { @@ -3654,24 +3839,24 @@ "type": "int_const 0", "value": "0" }, - "id": 584, + "id": 605, "name": "Literal", - "src": "2697:1:4" + "src": "2790:1:4" } ], - "id": 585, + "id": 606, "name": "BinaryOperation", - "src": "2673:25:4" + "src": "2766:25:4" } ], - "id": 586, + "id": 607, "name": "FunctionCall", - "src": "2665:34:4" + "src": "2758:34:4" } ], - "id": 587, + "id": 608, "name": "ExpressionStatement", - "src": "2665:34:4" + "src": "2758:34:4" }, { "children": [ @@ -3713,18 +3898,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 373, + "referencedDeclaration": 386, "type": "address", "value": "owner" }, - "id": 588, + "id": 609, "name": "Identifier", - "src": "2709:5:4" + "src": "2802:5:4" } ], - "id": 590, + "id": 611, "name": "MemberAccess", - "src": "2709:14:4" + "src": "2802:14:4" }, { "attributes": { @@ -3757,7 +3942,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1583", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1678", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -3768,9 +3953,9 @@ "type": "type(address)", "value": "address" }, - "id": 591, + "id": 612, "name": "ElementaryTypeNameExpression", - "src": "2724:7:4" + "src": "2817:7:4" }, { "attributes": { @@ -3778,43 +3963,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1614, + "referencedDeclaration": 1839, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 592, + "id": 613, "name": "Identifier", - "src": "2732:4:4" + "src": "2825:4:4" } ], - "id": 593, + "id": 614, "name": "FunctionCall", - "src": "2724:13:4" + "src": "2817:13:4" } ], - "id": 594, + "id": 615, "name": "MemberAccess", - "src": "2724:21:4" + "src": "2817:21:4" } ], - "id": 595, + "id": 616, "name": "FunctionCall", - "src": "2709:37:4" + "src": "2802:37:4" } ], - "id": 596, + "id": 617, "name": "ExpressionStatement", - "src": "2709:37:4" + "src": "2802:37:4" } ], - "id": 597, + "id": 618, "name": "Block", - "src": "2655:98:4" + "src": "2748:98:4" } ], - "id": 598, + "id": 619, "name": "FunctionDefinition", - "src": "2607:146:4" + "src": "2700:146:4" }, { "attributes": { @@ -3826,7 +4011,7 @@ ], "name": "userExists", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -3838,7 +4023,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 614, + "scope": 635, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -3851,19 +4036,19 @@ "name": "address", "type": "address" }, - "id": 599, + "id": 620, "name": "ElementaryTypeName", - "src": "2779:7:4" + "src": "2872:7:4" } ], - "id": 600, + "id": 621, "name": "VariableDeclaration", - "src": "2779:14:4" + "src": "2872:14:4" } ], - "id": 601, + "id": 622, "name": "ParameterList", - "src": "2778:16:4" + "src": "2871:16:4" }, { "children": [ @@ -3871,7 +4056,7 @@ "attributes": { "constant": false, "name": "", - "scope": 614, + "scope": 635, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -3884,25 +4069,25 @@ "name": "bool", "type": "bool" }, - "id": 602, + "id": 623, "name": "ElementaryTypeName", - "src": "2824:4:4" + "src": "2917:4:4" } ], - "id": 603, + "id": 624, "name": "VariableDeclaration", - "src": "2824:4:4" + "src": "2917:4:4" } ], - "id": 604, + "id": 625, "name": "ParameterList", - "src": "2823:6:4" + "src": "2916:6:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 604 + "functionReturnParameters": 625 }, "children": [ { @@ -3939,7 +4124,7 @@ "isPure": false, "lValueRequested": false, "member_name": "creationBlock", - "referencedDeclaration": 419, + "referencedDeclaration": 432, "type": "uint256" }, "children": [ @@ -3959,13 +4144,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 605, + "id": 626, "name": "Identifier", - "src": "2852:5:4" + "src": "2945:5:4" }, { "attributes": { @@ -3973,23 +4158,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 600, + "referencedDeclaration": 621, "type": "address", "value": "wallet" }, - "id": 606, + "id": 627, "name": "Identifier", - "src": "2858:6:4" + "src": "2951:6:4" } ], - "id": 607, + "id": 628, "name": "IndexAccess", - "src": "2852:13:4" + "src": "2945:13:4" } ], - "id": 608, + "id": 629, "name": "MemberAccess", - "src": "2852:27:4" + "src": "2945:27:4" }, { "attributes": { @@ -4004,34 +4189,34 @@ "type": "int_const 0", "value": "0" }, - "id": 609, + "id": 630, "name": "Literal", - "src": "2882:1:4" + "src": "2975:1:4" } ], - "id": 610, + "id": 631, "name": "BinaryOperation", - "src": "2852:31:4" + "src": "2945:31:4" } ], - "id": 611, + "id": 632, "name": "TupleExpression", - "src": "2851:33:4" + "src": "2944:33:4" } ], - "id": 612, + "id": 633, "name": "Return", - "src": "2844:40:4" + "src": "2937:40:4" } ], - "id": 613, + "id": 634, "name": "Block", - "src": "2834:57:4" + "src": "2927:57:4" } ], - "id": 614, + "id": 635, "name": "FunctionDefinition", - "src": "2759:132:4" + "src": "2852:132:4" }, { "attributes": { @@ -4040,7 +4225,7 @@ "isConstructor": false, "name": "userAddressConfirmed", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -4052,7 +4237,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 658, + "scope": 679, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -4065,20 +4250,20 @@ "name": "address", "type": "address" }, - "id": 615, + "id": 636, "name": "ElementaryTypeName", - "src": "2927:7:4" + "src": "3020:7:4" } ], - "id": 616, + "id": 637, "name": "VariableDeclaration", - "src": "2927:14:4" + "src": "3020:14:4" }, { "attributes": { "constant": false, "name": "addressIndex", - "scope": 658, + "scope": 679, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4091,19 +4276,19 @@ "name": "uint256", "type": "uint256" }, - "id": 617, + "id": 638, "name": "ElementaryTypeName", - "src": "2943:7:4" + "src": "3036:7:4" } ], - "id": 618, + "id": 639, "name": "VariableDeclaration", - "src": "2943:20:4" + "src": "3036:20:4" } ], - "id": 619, + "id": 640, "name": "ParameterList", - "src": "2926:38:4" + "src": "3019:38:4" }, { "children": [ @@ -4111,7 +4296,7 @@ "attributes": { "constant": false, "name": "", - "scope": 658, + "scope": 679, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4124,19 +4309,19 @@ "name": "bool", "type": "bool" }, - "id": 623, + "id": 644, "name": "ElementaryTypeName", - "src": "3018:4:4" + "src": "3111:4:4" } ], - "id": 624, + "id": 645, "name": "VariableDeclaration", - "src": "3018:4:4" + "src": "3111:4:4" } ], - "id": 625, + "id": 646, "name": "ParameterList", - "src": "3017:6:4" + "src": "3110:6:4" }, { "children": [ @@ -4146,13 +4331,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 620, + "id": 641, "name": "Identifier", - "src": "2985:15:4" + "src": "3078:15:4" }, { "attributes": { @@ -4160,25 +4345,25 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 616, + "referencedDeclaration": 637, "type": "address", "value": "wallet" }, - "id": 621, + "id": 642, "name": "Identifier", - "src": "3001:6:4" + "src": "3094:6:4" } ], - "id": 622, + "id": 643, "name": "ModifierInvocation", - "src": "2985:23:4" + "src": "3078:23:4" }, { "children": [ { "attributes": { "assignments": [ - 627 + 648 ] }, "children": [ @@ -4186,7 +4371,7 @@ "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 658, + "scope": 679, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -4199,14 +4384,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 626, + "id": 647, "name": "ElementaryTypeName", - "src": "3038:7:4" + "src": "3131:7:4" } ], - "id": 627, + "id": 648, "name": "VariableDeclaration", - "src": "3038:24:4" + "src": "3131:24:4" }, { "attributes": { @@ -4216,7 +4401,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 393, + "referencedDeclaration": 406, "type": "bytes32" }, "children": [ @@ -4238,7 +4423,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -4258,13 +4443,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 628, + "id": 649, "name": "Identifier", - "src": "3065:5:4" + "src": "3158:5:4" }, { "attributes": { @@ -4272,23 +4457,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 616, + "referencedDeclaration": 637, "type": "address", "value": "wallet" }, - "id": 629, + "id": 650, "name": "Identifier", - "src": "3071:6:4" + "src": "3164:6:4" } ], - "id": 630, + "id": 651, "name": "IndexAccess", - "src": "3065:13:4" + "src": "3158:13:4" } ], - "id": 631, + "id": 652, "name": "MemberAccess", - "src": "3065:31:4" + "src": "3158:31:4" }, { "attributes": { @@ -4296,28 +4481,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 618, + "referencedDeclaration": 639, "type": "uint256", "value": "addressIndex" }, - "id": 632, + "id": 653, "name": "Identifier", - "src": "3097:12:4" + "src": "3190:12:4" } ], - "id": 633, + "id": 654, "name": "IndexAccess", - "src": "3065:45:4" + "src": "3158:45:4" } ], - "id": 634, + "id": 655, "name": "MemberAccess", - "src": "3065:62:4" + "src": "3158:62:4" } ], - "id": 635, + "id": 656, "name": "VariableDeclarationStatement", - "src": "3038:89:4" + "src": "3131:89:4" }, { "attributes": { @@ -4345,13 +4530,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 627, + "referencedDeclaration": 648, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 636, + "id": 657, "name": "Identifier", - "src": "3142:16:4" + "src": "3235:16:4" }, { "attributes": { @@ -4366,20 +4551,20 @@ "type": "int_const 0", "value": "0x0" }, - "id": 637, + "id": 658, "name": "Literal", - "src": "3162:3:4" + "src": "3255:3:4" } ], - "id": 638, + "id": 659, "name": "BinaryOperation", - "src": "3142:23:4" + "src": "3235:23:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 625 + "functionReturnParameters": 646 }, "children": [ { @@ -4395,28 +4580,28 @@ "type": "bool", "value": "false" }, - "id": 639, + "id": 660, "name": "Literal", - "src": "3188:5:4" + "src": "3281:5:4" } ], - "id": 640, + "id": 661, "name": "Return", - "src": "3181:12:4" + "src": "3274:12:4" } ], - "id": 641, + "id": 662, "name": "Block", - "src": "3167:37:4" + "src": "3260:37:4" } ], - "id": 642, + "id": 663, "name": "IfStatement", - "src": "3138:66:4" + "src": "3231:66:4" }, { "attributes": { - "functionReturnParameters": 625 + "functionReturnParameters": 646 }, "children": [ { @@ -4462,7 +4647,7 @@ "isPure": false, "lValueRequested": false, "member_name": "decodeConfirmation", - "referencedDeclaration": 366, + "referencedDeclaration": 378, "type": "function (bytes32) pure returns (uint256)" }, "children": [ @@ -4472,18 +4657,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 367, + "referencedDeclaration": 379, "type": "type(library PhysicalAddressClaim)", "value": "PhysicalAddressClaim" }, - "id": 643, + "id": 664, "name": "Identifier", - "src": "3221:20:4" + "src": "3314:20:4" } ], - "id": 644, + "id": 665, "name": "MemberAccess", - "src": "3221:39:4" + "src": "3314:39:4" }, { "attributes": { @@ -4521,7 +4706,7 @@ "isPure": false, "lValueRequested": false, "member_name": "getClaim", - "referencedDeclaration": 192, + "referencedDeclaration": 261, "type": "function (address,address,bytes32) view external returns (bytes32)" }, "children": [ @@ -4531,18 +4716,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 377, + "referencedDeclaration": 390, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 645, + "id": 666, "name": "Identifier", - "src": "3261:8:4" + "src": "3354:8:4" } ], - "id": 646, + "id": 667, "name": "MemberAccess", - "src": "3261:17:4" + "src": "3354:17:4" }, { "attributes": { @@ -4563,7 +4748,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1583", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1678", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -4574,9 +4759,9 @@ "type": "type(address)", "value": "address" }, - "id": 647, + "id": 668, "name": "ElementaryTypeNameExpression", - "src": "3279:7:4" + "src": "3372:7:4" }, { "attributes": { @@ -4584,18 +4769,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1614, + "referencedDeclaration": 1839, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 648, + "id": 669, "name": "Identifier", - "src": "3287:4:4" + "src": "3380:4:4" } ], - "id": 649, + "id": 670, "name": "FunctionCall", - "src": "3279:13:4" + "src": "3372:13:4" }, { "attributes": { @@ -4603,13 +4788,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 616, + "referencedDeclaration": 637, "type": "address", "value": "wallet" }, - "id": 650, + "id": 671, "name": "Identifier", - "src": "3294:6:4" + "src": "3387:6:4" }, { "attributes": { @@ -4617,23 +4802,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 627, + "referencedDeclaration": 648, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 651, + "id": 672, "name": "Identifier", - "src": "3302:16:4" + "src": "3395:16:4" } ], - "id": 652, + "id": 673, "name": "FunctionCall", - "src": "3261:58:4" + "src": "3354:58:4" } ], - "id": 653, + "id": 674, "name": "FunctionCall", - "src": "3221:99:4" + "src": "3314:99:4" }, { "attributes": { @@ -4648,29 +4833,29 @@ "type": "int_const 0", "value": "0" }, - "id": 654, + "id": 675, "name": "Literal", - "src": "3323:1:4" + "src": "3416:1:4" } ], - "id": 655, + "id": 676, "name": "BinaryOperation", - "src": "3221:103:4" + "src": "3314:103:4" } ], - "id": 656, + "id": 677, "name": "Return", - "src": "3214:110:4" + "src": "3307:110:4" } ], - "id": 657, + "id": 678, "name": "Block", - "src": "3028:303:4" + "src": "3121:303:4" } ], - "id": 658, + "id": 679, "name": "FunctionDefinition", - "src": "2897:434:4" + "src": "2990:434:4" }, { "attributes": { @@ -4679,7 +4864,7 @@ "isConstructor": false, "name": "userAddressByCreationBlock", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -4691,7 +4876,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 715, + "scope": 736, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -4704,20 +4889,20 @@ "name": "address", "type": "address" }, - "id": 659, + "id": 680, "name": "ElementaryTypeName", - "src": "3462:7:4" + "src": "3555:7:4" } ], - "id": 660, + "id": 681, "name": "VariableDeclaration", - "src": "3462:14:4" + "src": "3555:14:4" }, { "attributes": { "constant": false, "name": "creationBlock", - "scope": 715, + "scope": 736, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4730,19 +4915,19 @@ "name": "uint256", "type": "uint256" }, - "id": 661, + "id": 682, "name": "ElementaryTypeName", - "src": "3478:7:4" + "src": "3571:7:4" } ], - "id": 662, + "id": 683, "name": "VariableDeclaration", - "src": "3478:21:4" + "src": "3571:21:4" } ], - "id": 663, + "id": 684, "name": "ParameterList", - "src": "3461:39:4" + "src": "3554:39:4" }, { "children": [ @@ -4750,7 +4935,7 @@ "attributes": { "constant": false, "name": "", - "scope": 715, + "scope": 736, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4763,20 +4948,20 @@ "name": "bool", "type": "bool" }, - "id": 667, + "id": 688, "name": "ElementaryTypeName", - "src": "3554:4:4" + "src": "3647:4:4" } ], - "id": 668, + "id": 689, "name": "VariableDeclaration", - "src": "3554:4:4" + "src": "3647:4:4" }, { "attributes": { "constant": false, "name": "", - "scope": 715, + "scope": 736, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4789,20 +4974,20 @@ "name": "uint256", "type": "uint256" }, - "id": 669, + "id": 690, "name": "ElementaryTypeName", - "src": "3560:7:4" + "src": "3653:7:4" } ], - "id": 670, + "id": 691, "name": "VariableDeclaration", - "src": "3560:7:4" + "src": "3653:7:4" }, { "attributes": { "constant": false, "name": "", - "scope": 715, + "scope": 736, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -4815,19 +5000,19 @@ "name": "bool", "type": "bool" }, - "id": 671, + "id": 692, "name": "ElementaryTypeName", - "src": "3569:4:4" + "src": "3662:4:4" } ], - "id": 672, + "id": 693, "name": "VariableDeclaration", - "src": "3569:4:4" + "src": "3662:4:4" } ], - "id": 673, + "id": 694, "name": "ParameterList", - "src": "3553:21:4" + "src": "3646:21:4" }, { "children": [ @@ -4837,13 +5022,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 664, + "id": 685, "name": "Identifier", - "src": "3521:15:4" + "src": "3614:15:4" }, { "attributes": { @@ -4851,18 +5036,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 660, + "referencedDeclaration": 681, "type": "address", "value": "wallet" }, - "id": 665, + "id": 686, "name": "Identifier", - "src": "3537:6:4" + "src": "3630:6:4" } ], - "id": 666, + "id": 687, "name": "ModifierInvocation", - "src": "3521:23:4" + "src": "3614:23:4" }, { "children": [ @@ -4871,7 +5056,7 @@ { "attributes": { "assignments": [ - 675 + 696 ] }, "children": [ @@ -4879,7 +5064,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 715, + "scope": 736, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -4892,14 +5077,14 @@ "name": "uint256", "type": "uint256" }, - "id": 674, + "id": 695, "name": "ElementaryTypeName", - "src": "3594:7:4" + "src": "3687:7:4" } ], - "id": 675, + "id": 696, "name": "VariableDeclaration", - "src": "3594:10:4" + "src": "3687:10:4" }, { "attributes": { @@ -4914,14 +5099,14 @@ "type": "int_const 0", "value": "0" }, - "id": 676, + "id": 697, "name": "Literal", - "src": "3607:1:4" + "src": "3700:1:4" } ], - "id": 677, + "id": 698, "name": "VariableDeclarationStatement", - "src": "3594:14:4" + "src": "3687:14:4" }, { "attributes": { @@ -4944,13 +5129,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 675, + "referencedDeclaration": 696, "type": "uint256", "value": "ai" }, - "id": 678, + "id": 699, "name": "Identifier", - "src": "3610:2:4" + "src": "3703:2:4" }, { "attributes": { @@ -4972,7 +5157,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -4992,13 +5177,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 679, + "id": 700, "name": "Identifier", - "src": "3615:5:4" + "src": "3708:5:4" }, { "attributes": { @@ -5006,33 +5191,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 660, + "referencedDeclaration": 681, "type": "address", "value": "wallet" }, - "id": 680, + "id": 701, "name": "Identifier", - "src": "3621:6:4" + "src": "3714:6:4" } ], - "id": 681, + "id": 702, "name": "IndexAccess", - "src": "3615:13:4" + "src": "3708:13:4" } ], - "id": 682, + "id": 703, "name": "MemberAccess", - "src": "3615:31:4" + "src": "3708:31:4" } ], - "id": 683, + "id": 704, "name": "MemberAccess", - "src": "3615:38:4" + "src": "3708:38:4" } ], - "id": 684, + "id": 705, "name": "BinaryOperation", - "src": "3610:43:4" + "src": "3703:43:4" }, { "children": [ @@ -5054,23 +5239,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 675, + "referencedDeclaration": 696, "type": "uint256", "value": "ai" }, - "id": 685, + "id": 706, "name": "Identifier", - "src": "3655:2:4" + "src": "3748:2:4" } ], - "id": 686, + "id": 707, "name": "UnaryOperation", - "src": "3655:4:4" + "src": "3748:4:4" } ], - "id": 687, + "id": 708, "name": "ExpressionStatement", - "src": "3655:4:4" + "src": "3748:4:4" }, { "children": [ @@ -5102,7 +5287,7 @@ "isPure": false, "lValueRequested": false, "member_name": "creationBlock", - "referencedDeclaration": 391, + "referencedDeclaration": 404, "type": "uint256" }, "children": [ @@ -5124,7 +5309,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -5144,13 +5329,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 688, + "id": 709, "name": "Identifier", - "src": "3679:5:4" + "src": "3772:5:4" }, { "attributes": { @@ -5158,23 +5343,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 660, + "referencedDeclaration": 681, "type": "address", "value": "wallet" }, - "id": 689, + "id": 710, "name": "Identifier", - "src": "3685:6:4" + "src": "3778:6:4" } ], - "id": 690, + "id": 711, "name": "IndexAccess", - "src": "3679:13:4" + "src": "3772:13:4" } ], - "id": 691, + "id": 712, "name": "MemberAccess", - "src": "3679:31:4" + "src": "3772:31:4" }, { "attributes": { @@ -5182,23 +5367,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 675, + "referencedDeclaration": 696, "type": "uint256", "value": "ai" }, - "id": 692, + "id": 713, "name": "Identifier", - "src": "3711:2:4" + "src": "3804:2:4" } ], - "id": 693, + "id": 714, "name": "IndexAccess", - "src": "3679:35:4" + "src": "3772:35:4" } ], - "id": 694, + "id": 715, "name": "MemberAccess", - "src": "3679:49:4" + "src": "3772:49:4" }, { "attributes": { @@ -5206,24 +5391,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 662, + "referencedDeclaration": 683, "type": "uint256", "value": "creationBlock" }, - "id": 695, + "id": 716, "name": "Identifier", - "src": "3732:13:4" + "src": "3825:13:4" } ], - "id": 696, + "id": 717, "name": "BinaryOperation", - "src": "3679:66:4" + "src": "3772:66:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 673 + "functionReturnParameters": 694 }, "children": [ { @@ -5250,9 +5435,9 @@ "type": "bool", "value": "true" }, - "id": 697, + "id": 718, "name": "Literal", - "src": "3773:4:4" + "src": "3866:4:4" }, { "attributes": { @@ -5260,13 +5445,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 675, + "referencedDeclaration": 696, "type": "uint256", "value": "ai" }, - "id": 698, + "id": 719, "name": "Identifier", - "src": "3779:2:4" + "src": "3872:2:4" }, { "attributes": { @@ -5298,13 +5483,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 658, + "referencedDeclaration": 679, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 699, + "id": 720, "name": "Identifier", - "src": "3783:20:4" + "src": "3876:20:4" }, { "attributes": { @@ -5312,13 +5497,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 660, + "referencedDeclaration": 681, "type": "address", "value": "wallet" }, - "id": 700, + "id": 721, "name": "Identifier", - "src": "3804:6:4" + "src": "3897:6:4" }, { "attributes": { @@ -5326,52 +5511,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 675, + "referencedDeclaration": 696, "type": "uint256", "value": "ai" }, - "id": 701, + "id": 722, "name": "Identifier", - "src": "3812:2:4" + "src": "3905:2:4" } ], - "id": 702, + "id": 723, "name": "FunctionCall", - "src": "3783:32:4" + "src": "3876:32:4" } ], - "id": 703, + "id": 724, "name": "TupleExpression", - "src": "3772:44:4" + "src": "3865:44:4" } ], - "id": 704, + "id": 725, "name": "Return", - "src": "3765:51:4" + "src": "3858:51:4" } ], - "id": 705, + "id": 726, "name": "Block", - "src": "3747:84:4" + "src": "3840:84:4" } ], - "id": 706, + "id": 727, "name": "IfStatement", - "src": "3675:156:4" + "src": "3768:156:4" } ], - "id": 707, + "id": 728, "name": "Block", - "src": "3661:180:4" + "src": "3754:180:4" } ], - "id": 708, + "id": 729, "name": "ForStatement", - "src": "3589:252:4" + "src": "3682:252:4" }, { "attributes": { - "functionReturnParameters": 673 + "functionReturnParameters": 694 }, "children": [ { @@ -5398,9 +5583,9 @@ "type": "bool", "value": "false" }, - "id": 709, + "id": 730, "name": "Literal", - "src": "3858:5:4" + "src": "3951:5:4" }, { "attributes": { @@ -5415,9 +5600,9 @@ "type": "int_const 0", "value": "0" }, - "id": 710, + "id": 731, "name": "Literal", - "src": "3865:1:4" + "src": "3958:1:4" }, { "attributes": { @@ -5432,29 +5617,29 @@ "type": "bool", "value": "false" }, - "id": 711, + "id": 732, "name": "Literal", - "src": "3868:5:4" + "src": "3961:5:4" } ], - "id": 712, + "id": 733, "name": "TupleExpression", - "src": "3857:17:4" + "src": "3950:17:4" } ], - "id": 713, + "id": 734, "name": "Return", - "src": "3850:24:4" + "src": "3943:24:4" } ], - "id": 714, + "id": 735, "name": "Block", - "src": "3579:302:4" + "src": "3672:302:4" } ], - "id": 715, + "id": 736, "name": "FunctionDefinition", - "src": "3426:455:4" + "src": "3519:455:4" }, { "attributes": { @@ -5463,7 +5648,7 @@ "isConstructor": false, "name": "userAddressByConfirmationCode", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -5475,7 +5660,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 782, + "scope": 803, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -5488,20 +5673,20 @@ "name": "address", "type": "address" }, - "id": 716, + "id": 737, "name": "ElementaryTypeName", - "src": "4024:7:4" + "src": "4117:7:4" } ], - "id": 717, + "id": 738, "name": "VariableDeclaration", - "src": "4024:14:4" + "src": "4117:14:4" }, { "attributes": { "constant": false, "name": "confirmationCodeSha3", - "scope": 782, + "scope": 803, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5514,19 +5699,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 718, + "id": 739, "name": "ElementaryTypeName", - "src": "4048:7:4" + "src": "4141:7:4" } ], - "id": 719, + "id": 740, "name": "VariableDeclaration", - "src": "4048:28:4" + "src": "4141:28:4" } ], - "id": 720, + "id": 741, "name": "ParameterList", - "src": "4014:68:4" + "src": "4107:68:4" }, { "children": [ @@ -5534,7 +5719,7 @@ "attributes": { "constant": false, "name": "", - "scope": 782, + "scope": 803, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -5547,20 +5732,20 @@ "name": "bool", "type": "bool" }, - "id": 724, + "id": 745, "name": "ElementaryTypeName", - "src": "4163:4:4" + "src": "4256:4:4" } ], - "id": 725, + "id": 746, "name": "VariableDeclaration", - "src": "4163:4:4" + "src": "4256:4:4" }, { "attributes": { "constant": false, "name": "", - "scope": 782, + "scope": 803, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5573,20 +5758,20 @@ "name": "uint256", "type": "uint256" }, - "id": 726, + "id": 747, "name": "ElementaryTypeName", - "src": "4169:7:4" + "src": "4262:7:4" } ], - "id": 727, + "id": 748, "name": "VariableDeclaration", - "src": "4169:7:4" + "src": "4262:7:4" }, { "attributes": { "constant": false, "name": "", - "scope": 782, + "scope": 803, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -5599,20 +5784,20 @@ "name": "bool", "type": "bool" }, - "id": 728, + "id": 749, "name": "ElementaryTypeName", - "src": "4178:4:4" + "src": "4271:4:4" } ], - "id": 729, + "id": 750, "name": "VariableDeclaration", - "src": "4178:4:4" + "src": "4271:4:4" }, { "attributes": { "constant": false, "name": "", - "scope": 782, + "scope": 803, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -5625,19 +5810,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 730, + "id": 751, "name": "ElementaryTypeName", - "src": "4184:7:4" + "src": "4277:7:4" } ], - "id": 731, + "id": 752, "name": "VariableDeclaration", - "src": "4184:7:4" + "src": "4277:7:4" } ], - "id": 732, + "id": 753, "name": "ParameterList", - "src": "4162:30:4" + "src": "4255:30:4" }, { "children": [ @@ -5647,13 +5832,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 721, + "id": 742, "name": "Identifier", - "src": "4123:15:4" + "src": "4216:15:4" }, { "attributes": { @@ -5661,18 +5846,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 717, + "referencedDeclaration": 738, "type": "address", "value": "wallet" }, - "id": 722, + "id": 743, "name": "Identifier", - "src": "4139:6:4" + "src": "4232:6:4" } ], - "id": 723, + "id": 744, "name": "ModifierInvocation", - "src": "4123:23:4" + "src": "4216:23:4" }, { "children": [ @@ -5681,7 +5866,7 @@ { "attributes": { "assignments": [ - 734 + 755 ] }, "children": [ @@ -5689,7 +5874,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 782, + "scope": 803, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -5702,14 +5887,14 @@ "name": "uint256", "type": "uint256" }, - "id": 733, + "id": 754, "name": "ElementaryTypeName", - "src": "4212:7:4" + "src": "4305:7:4" } ], - "id": 734, + "id": 755, "name": "VariableDeclaration", - "src": "4212:10:4" + "src": "4305:10:4" }, { "attributes": { @@ -5724,14 +5909,14 @@ "type": "int_const 0", "value": "0" }, - "id": 735, + "id": 756, "name": "Literal", - "src": "4225:1:4" + "src": "4318:1:4" } ], - "id": 736, + "id": 757, "name": "VariableDeclarationStatement", - "src": "4212:14:4" + "src": "4305:14:4" }, { "attributes": { @@ -5754,13 +5939,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 734, + "referencedDeclaration": 755, "type": "uint256", "value": "ai" }, - "id": 737, + "id": 758, "name": "Identifier", - "src": "4228:2:4" + "src": "4321:2:4" }, { "attributes": { @@ -5782,7 +5967,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -5802,13 +5987,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 738, + "id": 759, "name": "Identifier", - "src": "4233:5:4" + "src": "4326:5:4" }, { "attributes": { @@ -5816,33 +6001,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 717, + "referencedDeclaration": 738, "type": "address", "value": "wallet" }, - "id": 739, + "id": 760, "name": "Identifier", - "src": "4239:6:4" + "src": "4332:6:4" } ], - "id": 740, + "id": 761, "name": "IndexAccess", - "src": "4233:13:4" + "src": "4326:13:4" } ], - "id": 741, + "id": 762, "name": "MemberAccess", - "src": "4233:31:4" + "src": "4326:31:4" } ], - "id": 742, + "id": 763, "name": "MemberAccess", - "src": "4233:38:4" + "src": "4326:38:4" } ], - "id": 743, + "id": 764, "name": "BinaryOperation", - "src": "4228:43:4" + "src": "4321:43:4" }, { "children": [ @@ -5864,23 +6049,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 734, + "referencedDeclaration": 755, "type": "uint256", "value": "ai" }, - "id": 744, + "id": 765, "name": "Identifier", - "src": "4273:2:4" + "src": "4366:2:4" } ], - "id": 745, + "id": 766, "name": "UnaryOperation", - "src": "4273:4:4" + "src": "4366:4:4" } ], - "id": 746, + "id": 767, "name": "ExpressionStatement", - "src": "4273:4:4" + "src": "4366:4:4" }, { "children": [ @@ -5912,7 +6097,7 @@ "isPure": false, "lValueRequested": false, "member_name": "confirmationCodeSha3", - "referencedDeclaration": 395, + "referencedDeclaration": 408, "type": "bytes32" }, "children": [ @@ -5934,7 +6119,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -5954,13 +6139,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 747, + "id": 768, "name": "Identifier", - "src": "4297:5:4" + "src": "4390:5:4" }, { "attributes": { @@ -5968,23 +6153,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 717, + "referencedDeclaration": 738, "type": "address", "value": "wallet" }, - "id": 748, + "id": 769, "name": "Identifier", - "src": "4303:6:4" + "src": "4396:6:4" } ], - "id": 749, + "id": 770, "name": "IndexAccess", - "src": "4297:13:4" + "src": "4390:13:4" } ], - "id": 750, + "id": 771, "name": "MemberAccess", - "src": "4297:31:4" + "src": "4390:31:4" }, { "attributes": { @@ -5992,23 +6177,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 734, + "referencedDeclaration": 755, "type": "uint256", "value": "ai" }, - "id": 751, + "id": 772, "name": "Identifier", - "src": "4329:2:4" + "src": "4422:2:4" } ], - "id": 752, + "id": 773, "name": "IndexAccess", - "src": "4297:35:4" + "src": "4390:35:4" } ], - "id": 753, + "id": 774, "name": "MemberAccess", - "src": "4297:56:4" + "src": "4390:56:4" }, { "attributes": { @@ -6016,24 +6201,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 719, + "referencedDeclaration": 740, "type": "bytes32", "value": "confirmationCodeSha3" }, - "id": 754, + "id": 775, "name": "Identifier", - "src": "4357:20:4" + "src": "4450:20:4" } ], - "id": 755, + "id": 776, "name": "BinaryOperation", - "src": "4297:80:4" + "src": "4390:80:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 732 + "functionReturnParameters": 753 }, "children": [ { @@ -6060,9 +6245,9 @@ "type": "bool", "value": "true" }, - "id": 756, + "id": 777, "name": "Literal", - "src": "4426:4:4" + "src": "4519:4:4" }, { "attributes": { @@ -6070,13 +6255,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 734, + "referencedDeclaration": 755, "type": "uint256", "value": "ai" }, - "id": 757, + "id": 778, "name": "Identifier", - "src": "4452:2:4" + "src": "4545:2:4" }, { "attributes": { @@ -6108,13 +6293,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 658, + "referencedDeclaration": 679, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 758, + "id": 779, "name": "Identifier", - "src": "4476:20:4" + "src": "4569:20:4" }, { "attributes": { @@ -6122,13 +6307,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 717, + "referencedDeclaration": 738, "type": "address", "value": "wallet" }, - "id": 759, + "id": 780, "name": "Identifier", - "src": "4497:6:4" + "src": "4590:6:4" }, { "attributes": { @@ -6136,18 +6321,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 734, + "referencedDeclaration": 755, "type": "uint256", "value": "ai" }, - "id": 760, + "id": 781, "name": "Identifier", - "src": "4505:2:4" + "src": "4598:2:4" } ], - "id": 761, + "id": 782, "name": "FunctionCall", - "src": "4476:32:4" + "src": "4569:32:4" }, { "attributes": { @@ -6157,7 +6342,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 393, + "referencedDeclaration": 406, "type": "bytes32" }, "children": [ @@ -6179,7 +6364,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -6199,13 +6384,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 762, + "id": 783, "name": "Identifier", - "src": "4530:5:4" + "src": "4623:5:4" }, { "attributes": { @@ -6213,23 +6398,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 717, + "referencedDeclaration": 738, "type": "address", "value": "wallet" }, - "id": 763, + "id": 784, "name": "Identifier", - "src": "4536:6:4" + "src": "4629:6:4" } ], - "id": 764, + "id": 785, "name": "IndexAccess", - "src": "4530:13:4" + "src": "4623:13:4" } ], - "id": 765, + "id": 786, "name": "MemberAccess", - "src": "4530:31:4" + "src": "4623:31:4" }, { "attributes": { @@ -6237,57 +6422,57 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 734, + "referencedDeclaration": 755, "type": "uint256", "value": "ai" }, - "id": 766, + "id": 787, "name": "Identifier", - "src": "4562:2:4" + "src": "4655:2:4" } ], - "id": 767, + "id": 788, "name": "IndexAccess", - "src": "4530:35:4" + "src": "4623:35:4" } ], - "id": 768, + "id": 789, "name": "MemberAccess", - "src": "4530:52:4" + "src": "4623:52:4" } ], - "id": 769, + "id": 790, "name": "TupleExpression", - "src": "4404:196:4" + "src": "4497:196:4" } ], - "id": 770, + "id": 791, "name": "Return", - "src": "4397:203:4" + "src": "4490:203:4" } ], - "id": 771, + "id": 792, "name": "Block", - "src": "4379:236:4" + "src": "4472:236:4" } ], - "id": 772, + "id": 793, "name": "IfStatement", - "src": "4293:322:4" + "src": "4386:322:4" } ], - "id": 773, + "id": 794, "name": "Block", - "src": "4279:346:4" + "src": "4372:346:4" } ], - "id": 774, + "id": 795, "name": "ForStatement", - "src": "4207:418:4" + "src": "4300:418:4" }, { "attributes": { - "functionReturnParameters": 732 + "functionReturnParameters": 753 }, "children": [ { @@ -6314,9 +6499,9 @@ "type": "bool", "value": "false" }, - "id": 775, + "id": 796, "name": "Literal", - "src": "4642:5:4" + "src": "4735:5:4" }, { "attributes": { @@ -6331,9 +6516,9 @@ "type": "int_const 0", "value": "0" }, - "id": 776, + "id": 797, "name": "Literal", - "src": "4649:1:4" + "src": "4742:1:4" }, { "attributes": { @@ -6348,9 +6533,9 @@ "type": "bool", "value": "false" }, - "id": 777, + "id": 798, "name": "Literal", - "src": "4652:5:4" + "src": "4745:5:4" }, { "attributes": { @@ -6365,29 +6550,29 @@ "type": "int_const 0", "value": "0x0" }, - "id": 778, + "id": 799, "name": "Literal", - "src": "4659:3:4" + "src": "4752:3:4" } ], - "id": 779, + "id": 800, "name": "TupleExpression", - "src": "4641:22:4" + "src": "4734:22:4" } ], - "id": 780, + "id": 801, "name": "Return", - "src": "4634:29:4" + "src": "4727:29:4" } ], - "id": 781, + "id": 802, "name": "Block", - "src": "4197:473:4" + "src": "4290:473:4" } ], - "id": 782, + "id": 803, "name": "FunctionDefinition", - "src": "3976:694:4" + "src": "4069:694:4" }, { "attributes": { @@ -6396,7 +6581,7 @@ "isConstructor": false, "name": "userAddressByAddress", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -6408,7 +6593,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -6421,20 +6606,20 @@ "name": "address", "type": "address" }, - "id": 783, + "id": 804, "name": "ElementaryTypeName", - "src": "4795:7:4" + "src": "4888:7:4" } ], - "id": 784, + "id": 805, "name": "VariableDeclaration", - "src": "4795:14:4" + "src": "4888:14:4" }, { "attributes": { "constant": false, "name": "country", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6447,20 +6632,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 785, + "id": 806, "name": "ElementaryTypeName", - "src": "4811:6:4" + "src": "4904:6:4" } ], - "id": 786, + "id": 807, "name": "VariableDeclaration", - "src": "4811:14:4" + "src": "4904:14:4" }, { "attributes": { "constant": false, "name": "state", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6473,20 +6658,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 787, + "id": 808, "name": "ElementaryTypeName", - "src": "4827:6:4" + "src": "4920:6:4" } ], - "id": 788, + "id": 809, "name": "VariableDeclaration", - "src": "4827:12:4" + "src": "4920:12:4" }, { "attributes": { "constant": false, "name": "city", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6499,20 +6684,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 789, + "id": 810, "name": "ElementaryTypeName", - "src": "4841:6:4" + "src": "4934:6:4" } ], - "id": 790, + "id": 811, "name": "VariableDeclaration", - "src": "4841:11:4" + "src": "4934:11:4" }, { "attributes": { "constant": false, "name": "location", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6525,20 +6710,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 791, + "id": 812, "name": "ElementaryTypeName", - "src": "4854:6:4" + "src": "4947:6:4" } ], - "id": 792, + "id": 813, "name": "VariableDeclaration", - "src": "4854:15:4" + "src": "4947:15:4" }, { "attributes": { "constant": false, "name": "zip", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -6551,19 +6736,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 793, + "id": 814, "name": "ElementaryTypeName", - "src": "4871:6:4" + "src": "4964:6:4" } ], - "id": 794, + "id": 815, "name": "VariableDeclaration", - "src": "4871:10:4" + "src": "4964:10:4" } ], - "id": 795, + "id": 816, "name": "ParameterList", - "src": "4794:88:4" + "src": "4887:88:4" }, { "children": [ @@ -6571,7 +6756,7 @@ "attributes": { "constant": false, "name": "", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -6584,20 +6769,20 @@ "name": "bool", "type": "bool" }, - "id": 799, + "id": 820, "name": "ElementaryTypeName", - "src": "4935:4:4" + "src": "5028:4:4" } ], - "id": 800, + "id": 821, "name": "VariableDeclaration", - "src": "4935:4:4" + "src": "5028:4:4" }, { "attributes": { "constant": false, "name": "", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6610,20 +6795,20 @@ "name": "uint256", "type": "uint256" }, - "id": 801, + "id": 822, "name": "ElementaryTypeName", - "src": "4941:7:4" + "src": "5034:7:4" } ], - "id": 802, + "id": 823, "name": "VariableDeclaration", - "src": "4941:7:4" + "src": "5034:7:4" }, { "attributes": { "constant": false, "name": "", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -6636,19 +6821,19 @@ "name": "bool", "type": "bool" }, - "id": 803, + "id": 824, "name": "ElementaryTypeName", - "src": "4950:4:4" + "src": "5043:4:4" } ], - "id": 804, + "id": 825, "name": "VariableDeclaration", - "src": "4950:4:4" + "src": "5043:4:4" } ], - "id": 805, + "id": 826, "name": "ParameterList", - "src": "4934:21:4" + "src": "5027:21:4" }, { "children": [ @@ -6658,13 +6843,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 796, + "id": 817, "name": "Identifier", - "src": "4903:15:4" + "src": "4996:15:4" }, { "attributes": { @@ -6672,25 +6857,25 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 805, "type": "address", "value": "wallet" }, - "id": 797, + "id": 818, "name": "Identifier", - "src": "4919:6:4" + "src": "5012:6:4" } ], - "id": 798, + "id": 819, "name": "ModifierInvocation", - "src": "4903:23:4" + "src": "4996:23:4" }, { "children": [ { "attributes": { "assignments": [ - 807 + 828 ] }, "children": [ @@ -6698,7 +6883,7 @@ "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 857, + "scope": 843, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -6711,14 +6896,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 806, + "id": 827, "name": "ElementaryTypeName", - "src": "4970:7:4" + "src": "5063:7:4" } ], - "id": 807, + "id": 828, "name": "VariableDeclaration", - "src": "4970:24:4" + "src": "5063:24:4" }, { "attributes": { @@ -6762,13 +6947,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1589, + "referencedDeclaration": 1814, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 808, + "id": 829, "name": "Identifier", - "src": "4997:9:4" + "src": "5090:9:4" }, { "attributes": { @@ -6776,13 +6961,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 786, + "referencedDeclaration": 807, "type": "string memory", "value": "country" }, - "id": 809, + "id": 830, "name": "Identifier", - "src": "5007:7:4" + "src": "5100:7:4" }, { "attributes": { @@ -6790,13 +6975,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 788, + "referencedDeclaration": 809, "type": "string memory", "value": "state" }, - "id": 810, + "id": 831, "name": "Identifier", - "src": "5016:5:4" + "src": "5109:5:4" }, { "attributes": { @@ -6804,13 +6989,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 790, + "referencedDeclaration": 811, "type": "string memory", "value": "city" }, - "id": 811, + "id": 832, "name": "Identifier", - "src": "5023:4:4" + "src": "5116:4:4" }, { "attributes": { @@ -6818,13 +7003,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 792, + "referencedDeclaration": 813, "type": "string memory", "value": "location" }, - "id": 812, + "id": 833, "name": "Identifier", - "src": "5029:8:4" + "src": "5122:8:4" }, { "attributes": { @@ -6832,30 +7017,315 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 794, + "referencedDeclaration": 815, "type": "string memory", "value": "zip" }, - "id": 813, + "id": 834, "name": "Identifier", - "src": "5039:3:4" + "src": "5132:3:4" } ], - "id": 814, + "id": 835, "name": "FunctionCall", - "src": "4997:46:4" + "src": "5090:46:4" } ], - "id": 815, + "id": 836, "name": "VariableDeclarationStatement", - "src": "4970:73:4" + "src": "5063:73:4" + }, + { + "attributes": { + "functionReturnParameters": 826 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple(bool,uint256,bool)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 900, + "type": "function (address,bytes32) view returns (bool,uint256,bool)", + "value": "userAddressByKeccakIdentifier" + }, + "id": 837, + "name": "Identifier", + "src": "5153:29:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 805, + "type": "address", + "value": "wallet" + }, + "id": 838, + "name": "Identifier", + "src": "5183:6:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 828, + "type": "bytes32", + "value": "keccakIdentifier" + }, + "id": 839, + "name": "Identifier", + "src": "5191:16:4" + } + ], + "id": 840, + "name": "FunctionCall", + "src": "5153:55:4" + } + ], + "id": 841, + "name": "Return", + "src": "5146:62:4" + } + ], + "id": 842, + "name": "Block", + "src": "5053:162:4" + } + ], + "id": 843, + "name": "FunctionDefinition", + "src": "4858:357:4" + }, + { + "attributes": { + "constant": true, + "implemented": true, + "isConstructor": false, + "name": "userAddressByKeccakIdentifier", + "payable": false, + "scope": 1678, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "wallet", + "scope": 900, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 844, + "name": "ElementaryTypeName", + "src": "5349:7:4" + } + ], + "id": 845, + "name": "VariableDeclaration", + "src": "5349:14:4" + }, + { + "attributes": { + "constant": false, + "name": "keccakIdentifier", + "scope": 900, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 846, + "name": "ElementaryTypeName", + "src": "5365:7:4" + } + ], + "id": 847, + "name": "VariableDeclaration", + "src": "5365:24:4" + } + ], + "id": 848, + "name": "ParameterList", + "src": "5348:42:4" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 900, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 852, + "name": "ElementaryTypeName", + "src": "5443:4:4" + } + ], + "id": 853, + "name": "VariableDeclaration", + "src": "5443:4:4" + }, + { + "attributes": { + "constant": false, + "name": "", + "scope": 900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 854, + "name": "ElementaryTypeName", + "src": "5449:7:4" + } + ], + "id": 855, + "name": "VariableDeclaration", + "src": "5449:7:4" + }, + { + "attributes": { + "constant": false, + "name": "", + "scope": 900, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 856, + "name": "ElementaryTypeName", + "src": "5458:4:4" + } + ], + "id": 857, + "name": "VariableDeclaration", + "src": "5458:4:4" + } + ], + "id": 858, + "name": "ParameterList", + "src": "5442:21:4" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 503, + "type": "modifier (address)", + "value": "checkUserExists" + }, + "id": 849, + "name": "Identifier", + "src": "5411:15:4" }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 845, + "type": "address", + "value": "wallet" + }, + "id": 850, + "name": "Identifier", + "src": "5427:6:4" + } + ], + "id": 851, + "name": "ModifierInvocation", + "src": "5411:23:4" + }, + { + "children": [ { "children": [ { "attributes": { "assignments": [ - 817 + 860 ] }, "children": [ @@ -6863,7 +7333,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 857, + "scope": 900, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -6876,14 +7346,14 @@ "name": "uint256", "type": "uint256" }, - "id": 816, + "id": 859, "name": "ElementaryTypeName", - "src": "5058:7:4" + "src": "5483:7:4" } ], - "id": 817, + "id": 860, "name": "VariableDeclaration", - "src": "5058:10:4" + "src": "5483:10:4" }, { "attributes": { @@ -6898,14 +7368,14 @@ "type": "int_const 0", "value": "0" }, - "id": 818, + "id": 861, "name": "Literal", - "src": "5071:1:4" + "src": "5496:1:4" } ], - "id": 819, + "id": 862, "name": "VariableDeclarationStatement", - "src": "5058:14:4" + "src": "5483:14:4" }, { "attributes": { @@ -6928,13 +7398,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 817, + "referencedDeclaration": 860, "type": "uint256", "value": "ai" }, - "id": 820, + "id": 863, "name": "Identifier", - "src": "5074:2:4" + "src": "5499:2:4" }, { "attributes": { @@ -6956,7 +7426,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -6976,13 +7446,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 821, + "id": 864, "name": "Identifier", - "src": "5079:5:4" + "src": "5504:5:4" }, { "attributes": { @@ -6990,33 +7460,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 845, "type": "address", "value": "wallet" }, - "id": 822, + "id": 865, "name": "Identifier", - "src": "5085:6:4" + "src": "5510:6:4" } ], - "id": 823, + "id": 866, "name": "IndexAccess", - "src": "5079:13:4" + "src": "5504:13:4" } ], - "id": 824, + "id": 867, "name": "MemberAccess", - "src": "5079:31:4" + "src": "5504:31:4" } ], - "id": 825, + "id": 868, "name": "MemberAccess", - "src": "5079:38:4" + "src": "5504:38:4" } ], - "id": 826, + "id": 869, "name": "BinaryOperation", - "src": "5074:43:4" + "src": "5499:43:4" }, { "children": [ @@ -7038,23 +7508,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 817, + "referencedDeclaration": 860, "type": "uint256", "value": "ai" }, - "id": 827, + "id": 870, "name": "Identifier", - "src": "5119:2:4" + "src": "5544:2:4" } ], - "id": 828, + "id": 871, "name": "UnaryOperation", - "src": "5119:4:4" + "src": "5544:4:4" } ], - "id": 829, + "id": 872, "name": "ExpressionStatement", - "src": "5119:4:4" + "src": "5544:4:4" }, { "children": [ @@ -7086,7 +7556,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 393, + "referencedDeclaration": 406, "type": "bytes32" }, "children": [ @@ -7108,7 +7578,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7128,13 +7598,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 830, + "id": 873, "name": "Identifier", - "src": "5143:5:4" + "src": "5568:5:4" }, { "attributes": { @@ -7142,23 +7612,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 845, "type": "address", "value": "wallet" }, - "id": 831, + "id": 874, "name": "Identifier", - "src": "5149:6:4" + "src": "5574:6:4" } ], - "id": 832, + "id": 875, "name": "IndexAccess", - "src": "5143:13:4" + "src": "5568:13:4" } ], - "id": 833, + "id": 876, "name": "MemberAccess", - "src": "5143:31:4" + "src": "5568:31:4" }, { "attributes": { @@ -7166,23 +7636,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 817, + "referencedDeclaration": 860, "type": "uint256", "value": "ai" }, - "id": 834, + "id": 877, "name": "Identifier", - "src": "5175:2:4" + "src": "5600:2:4" } ], - "id": 835, + "id": 878, "name": "IndexAccess", - "src": "5143:35:4" + "src": "5568:35:4" } ], - "id": 836, + "id": 879, "name": "MemberAccess", - "src": "5143:52:4" + "src": "5568:52:4" }, { "attributes": { @@ -7190,24 +7660,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 807, + "referencedDeclaration": 847, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 837, + "id": 880, "name": "Identifier", - "src": "5199:16:4" + "src": "5624:16:4" } ], - "id": 838, + "id": 881, "name": "BinaryOperation", - "src": "5143:72:4" + "src": "5568:72:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 805 + "functionReturnParameters": 858 }, "children": [ { @@ -7234,9 +7704,9 @@ "type": "bool", "value": "true" }, - "id": 839, + "id": 882, "name": "Literal", - "src": "5243:4:4" + "src": "5668:4:4" }, { "attributes": { @@ -7244,13 +7714,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 817, + "referencedDeclaration": 860, "type": "uint256", "value": "ai" }, - "id": 840, + "id": 883, "name": "Identifier", - "src": "5249:2:4" + "src": "5674:2:4" }, { "attributes": { @@ -7282,13 +7752,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 658, + "referencedDeclaration": 679, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 841, + "id": 884, "name": "Identifier", - "src": "5253:20:4" + "src": "5678:20:4" }, { "attributes": { @@ -7296,13 +7766,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 784, + "referencedDeclaration": 845, "type": "address", "value": "wallet" }, - "id": 842, + "id": 885, "name": "Identifier", - "src": "5274:6:4" + "src": "5699:6:4" }, { "attributes": { @@ -7310,52 +7780,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 817, + "referencedDeclaration": 860, "type": "uint256", "value": "ai" }, - "id": 843, + "id": 886, "name": "Identifier", - "src": "5282:2:4" + "src": "5707:2:4" } ], - "id": 844, + "id": 887, "name": "FunctionCall", - "src": "5253:32:4" + "src": "5678:32:4" } ], - "id": 845, + "id": 888, "name": "TupleExpression", - "src": "5242:44:4" + "src": "5667:44:4" } ], - "id": 846, + "id": 889, "name": "Return", - "src": "5235:51:4" + "src": "5660:51:4" } ], - "id": 847, + "id": 890, "name": "Block", - "src": "5217:84:4" + "src": "5642:84:4" } ], - "id": 848, + "id": 891, "name": "IfStatement", - "src": "5139:162:4" + "src": "5564:162:4" } ], - "id": 849, + "id": 892, "name": "Block", - "src": "5125:186:4" + "src": "5550:186:4" } ], - "id": 850, + "id": 893, "name": "ForStatement", - "src": "5053:258:4" + "src": "5478:258:4" }, { "attributes": { - "functionReturnParameters": 805 + "functionReturnParameters": 858 }, "children": [ { @@ -7382,9 +7852,9 @@ "type": "bool", "value": "false" }, - "id": 851, + "id": 894, "name": "Literal", - "src": "5328:5:4" + "src": "5753:5:4" }, { "attributes": { @@ -7399,9 +7869,9 @@ "type": "int_const 0", "value": "0" }, - "id": 852, + "id": 895, "name": "Literal", - "src": "5335:1:4" + "src": "5760:1:4" }, { "attributes": { @@ -7416,29 +7886,29 @@ "type": "bool", "value": "false" }, - "id": 853, + "id": 896, "name": "Literal", - "src": "5338:5:4" + "src": "5763:5:4" } ], - "id": 854, + "id": 897, "name": "TupleExpression", - "src": "5327:17:4" + "src": "5752:17:4" } ], - "id": 855, + "id": 898, "name": "Return", - "src": "5320:24:4" + "src": "5745:24:4" } ], - "id": 856, + "id": 899, "name": "Block", - "src": "4960:391:4" + "src": "5468:308:4" } ], - "id": 857, + "id": 900, "name": "FunctionDefinition", - "src": "4765:586:4" + "src": "5310:466:4" }, { "attributes": { @@ -7447,7 +7917,7 @@ "isConstructor": false, "name": "userLastSubmittedName", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -7459,7 +7929,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 882, + "scope": 925, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -7472,19 +7942,19 @@ "name": "address", "type": "address" }, - "id": 858, + "id": 901, "name": "ElementaryTypeName", - "src": "5440:7:4" + "src": "5865:7:4" } ], - "id": 859, + "id": 902, "name": "VariableDeclaration", - "src": "5440:14:4" + "src": "5865:14:4" } ], - "id": 860, + "id": 903, "name": "ParameterList", - "src": "5439:16:4" + "src": "5864:16:4" }, { "children": [ @@ -7492,7 +7962,7 @@ "attributes": { "constant": false, "name": "", - "scope": 882, + "scope": 925, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -7505,19 +7975,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 864, + "id": 907, "name": "ElementaryTypeName", - "src": "5509:6:4" + "src": "5934:6:4" } ], - "id": 865, + "id": 908, "name": "VariableDeclaration", - "src": "5509:6:4" + "src": "5934:6:4" } ], - "id": 866, + "id": 909, "name": "ParameterList", - "src": "5508:8:4" + "src": "5933:8:4" }, { "children": [ @@ -7527,13 +7997,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 861, + "id": 904, "name": "Identifier", - "src": "5476:15:4" + "src": "5901:15:4" }, { "attributes": { @@ -7541,24 +8011,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 859, + "referencedDeclaration": 902, "type": "address", "value": "wallet" }, - "id": 862, + "id": 905, "name": "Identifier", - "src": "5492:6:4" + "src": "5917:6:4" } ], - "id": 863, + "id": 906, "name": "ModifierInvocation", - "src": "5476:23:4" + "src": "5901:23:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 866 + "functionReturnParameters": 909 }, "children": [ { @@ -7569,7 +8039,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 379, + "referencedDeclaration": 392, "type": "string storage ref" }, "children": [ @@ -7591,7 +8061,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7611,13 +8081,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 867, + "id": 910, "name": "Identifier", - "src": "5538:5:4" + "src": "5963:5:4" }, { "attributes": { @@ -7625,23 +8095,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 859, + "referencedDeclaration": 902, "type": "address", "value": "wallet" }, - "id": 868, + "id": 911, "name": "Identifier", - "src": "5544:6:4" + "src": "5969:6:4" } ], - "id": 869, + "id": 912, "name": "IndexAccess", - "src": "5538:13:4" + "src": "5963:13:4" } ], - "id": 870, + "id": 913, "name": "MemberAccess", - "src": "5538:31:4" + "src": "5963:31:4" }, { "attributes": { @@ -7678,7 +8148,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7698,13 +8168,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 871, + "id": 914, "name": "Identifier", - "src": "5570:5:4" + "src": "5995:5:4" }, { "attributes": { @@ -7712,28 +8182,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 859, + "referencedDeclaration": 902, "type": "address", "value": "wallet" }, - "id": 872, + "id": 915, "name": "Identifier", - "src": "5576:6:4" + "src": "6001:6:4" } ], - "id": 873, + "id": 916, "name": "IndexAccess", - "src": "5570:13:4" + "src": "5995:13:4" } ], - "id": 874, + "id": 917, "name": "MemberAccess", - "src": "5570:31:4" + "src": "5995:31:4" } ], - "id": 875, + "id": 918, "name": "MemberAccess", - "src": "5570:38:4" + "src": "5995:38:4" }, { "attributes": { @@ -7748,39 +8218,39 @@ "type": "int_const 1", "value": "1" }, - "id": 876, + "id": 919, "name": "Literal", - "src": "5609:1:4" + "src": "6034:1:4" } ], - "id": 877, + "id": 920, "name": "BinaryOperation", - "src": "5570:40:4" + "src": "5995:40:4" } ], - "id": 878, + "id": 921, "name": "IndexAccess", - "src": "5538:73:4" + "src": "5963:73:4" } ], - "id": 879, + "id": 922, "name": "MemberAccess", - "src": "5538:78:4" + "src": "5963:78:4" } ], - "id": 880, + "id": 923, "name": "Return", - "src": "5531:85:4" + "src": "5956:85:4" } ], - "id": 881, + "id": 924, "name": "Block", - "src": "5521:102:4" + "src": "5946:102:4" } ], - "id": 882, + "id": 925, "name": "FunctionDefinition", - "src": "5409:214:4" + "src": "5834:214:4" }, { "attributes": { @@ -7789,7 +8259,7 @@ "isConstructor": false, "name": "userLastConfirmedName", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -7801,7 +8271,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 925, + "scope": 968, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -7814,19 +8284,19 @@ "name": "address", "type": "address" }, - "id": 883, + "id": 926, "name": "ElementaryTypeName", - "src": "5755:7:4" + "src": "6180:7:4" } ], - "id": 884, + "id": 927, "name": "VariableDeclaration", - "src": "5755:14:4" + "src": "6180:14:4" } ], - "id": 885, + "id": 928, "name": "ParameterList", - "src": "5754:16:4" + "src": "6179:16:4" }, { "children": [ @@ -7834,7 +8304,7 @@ "attributes": { "constant": false, "name": "", - "scope": 925, + "scope": 968, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -7847,19 +8317,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 889, + "id": 932, "name": "ElementaryTypeName", - "src": "5824:6:4" + "src": "6249:6:4" } ], - "id": 890, + "id": 933, "name": "VariableDeclaration", - "src": "5824:6:4" + "src": "6249:6:4" } ], - "id": 891, + "id": 934, "name": "ParameterList", - "src": "5823:8:4" + "src": "6248:8:4" }, { "children": [ @@ -7869,13 +8339,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 886, + "id": 929, "name": "Identifier", - "src": "5791:15:4" + "src": "6216:15:4" }, { "attributes": { @@ -7883,18 +8353,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 884, + "referencedDeclaration": 927, "type": "address", "value": "wallet" }, - "id": 887, + "id": 930, "name": "Identifier", - "src": "5807:6:4" + "src": "6232:6:4" } ], - "id": 888, + "id": 931, "name": "ModifierInvocation", - "src": "5791:23:4" + "src": "6216:23:4" }, { "children": [ @@ -7906,7 +8376,7 @@ { "attributes": { "assignments": [ - 893 + 936 ] }, "children": [ @@ -7914,7 +8384,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 925, + "scope": 968, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -7927,14 +8397,14 @@ "name": "uint256", "type": "uint256" }, - "id": 892, + "id": 935, "name": "ElementaryTypeName", - "src": "5851:7:4" + "src": "6276:7:4" } ], - "id": 893, + "id": 936, "name": "VariableDeclaration", - "src": "5851:10:4" + "src": "6276:10:4" }, { "attributes": { @@ -7956,7 +8426,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -7976,13 +8446,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 894, + "id": 937, "name": "Identifier", - "src": "5864:5:4" + "src": "6289:5:4" }, { "attributes": { @@ -7990,33 +8460,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 884, + "referencedDeclaration": 927, "type": "address", "value": "wallet" }, - "id": 895, + "id": 938, "name": "Identifier", - "src": "5870:6:4" + "src": "6295:6:4" } ], - "id": 896, + "id": 939, "name": "IndexAccess", - "src": "5864:13:4" + "src": "6289:13:4" } ], - "id": 897, + "id": 940, "name": "MemberAccess", - "src": "5864:31:4" + "src": "6289:31:4" } ], - "id": 898, + "id": 941, "name": "MemberAccess", - "src": "5864:38:4" + "src": "6289:38:4" } ], - "id": 899, + "id": 942, "name": "VariableDeclarationStatement", - "src": "5851:51:4" + "src": "6276:51:4" }, { "attributes": { @@ -8039,13 +8509,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 893, + "referencedDeclaration": 936, "type": "uint256", "value": "ai" }, - "id": 900, + "id": 943, "name": "Identifier", - "src": "5904:2:4" + "src": "6329:2:4" }, { "attributes": { @@ -8060,14 +8530,14 @@ "type": "int_const 0", "value": "0" }, - "id": 901, + "id": 944, "name": "Literal", - "src": "5909:1:4" + "src": "6334:1:4" } ], - "id": 902, + "id": 945, "name": "BinaryOperation", - "src": "5904:6:4" + "src": "6329:6:4" }, { "children": [ @@ -8091,23 +8561,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 893, + "referencedDeclaration": 936, "type": "uint256", "value": "ai" }, - "id": 903, + "id": 946, "name": "Identifier", - "src": "5927:2:4" + "src": "6352:2:4" } ], - "id": 904, + "id": 947, "name": "UnaryOperation", - "src": "5927:4:4" + "src": "6352:4:4" } ], - "id": 905, + "id": 948, "name": "ExpressionStatement", - "src": "5927:4:4" + "src": "6352:4:4" }, { "attributes": { @@ -8144,13 +8614,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 658, + "referencedDeclaration": 679, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 906, + "id": 949, "name": "Identifier", - "src": "5949:20:4" + "src": "6374:20:4" }, { "attributes": { @@ -8158,13 +8628,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 884, + "referencedDeclaration": 927, "type": "address", "value": "wallet" }, - "id": 907, + "id": 950, "name": "Identifier", - "src": "5970:6:4" + "src": "6395:6:4" }, { "attributes": { @@ -8172,24 +8642,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 893, + "referencedDeclaration": 936, "type": "uint256", "value": "ai" }, - "id": 908, + "id": 951, "name": "Identifier", - "src": "5978:2:4" + "src": "6403:2:4" } ], - "id": 909, + "id": 952, "name": "FunctionCall", - "src": "5949:32:4" + "src": "6374:32:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 891 + "functionReturnParameters": 934 }, "children": [ { @@ -8200,7 +8670,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 379, + "referencedDeclaration": 392, "type": "string storage ref" }, "children": [ @@ -8222,7 +8692,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -8242,13 +8712,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 910, + "id": 953, "name": "Identifier", - "src": "6008:5:4" + "src": "6433:5:4" }, { "attributes": { @@ -8256,23 +8726,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 884, + "referencedDeclaration": 927, "type": "address", "value": "wallet" }, - "id": 911, + "id": 954, "name": "Identifier", - "src": "6014:6:4" + "src": "6439:6:4" } ], - "id": 912, + "id": 955, "name": "IndexAccess", - "src": "6008:13:4" + "src": "6433:13:4" } ], - "id": 913, + "id": 956, "name": "MemberAccess", - "src": "6008:31:4" + "src": "6433:31:4" }, { "attributes": { @@ -8280,52 +8750,52 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 893, + "referencedDeclaration": 936, "type": "uint256", "value": "ai" }, - "id": 914, + "id": 957, "name": "Identifier", - "src": "6040:2:4" + "src": "6465:2:4" } ], - "id": 915, + "id": 958, "name": "IndexAccess", - "src": "6008:35:4" + "src": "6433:35:4" } ], - "id": 916, + "id": 959, "name": "MemberAccess", - "src": "6008:40:4" + "src": "6433:40:4" } ], - "id": 917, + "id": 960, "name": "Return", - "src": "6001:47:4" + "src": "6426:47:4" } ], - "id": 918, + "id": 961, "name": "Block", - "src": "5983:80:4" + "src": "6408:80:4" } ], - "id": 919, + "id": 962, "name": "IfStatement", - "src": "5945:118:4" + "src": "6370:118:4" } ], - "id": 920, + "id": 963, "name": "Block", - "src": "5913:160:4" + "src": "6338:160:4" } ], - "id": 921, + "id": 964, "name": "ForStatement", - "src": "5846:227:4" + "src": "6271:227:4" }, { "attributes": { - "functionReturnParameters": 891 + "functionReturnParameters": 934 }, "children": [ { @@ -8341,24 +8811,24 @@ "type": "literal_string \"\"", "value": "" }, - "id": 922, + "id": 965, "name": "Literal", - "src": "6089:2:4" + "src": "6514:2:4" } ], - "id": 923, + "id": 966, "name": "Return", - "src": "6082:9:4" + "src": "6507:9:4" } ], - "id": 924, + "id": 967, "name": "Block", - "src": "5836:262:4" + "src": "6261:262:4" } ], - "id": 925, + "id": 968, "name": "FunctionDefinition", - "src": "5724:374:4" + "src": "6149:374:4" }, { "attributes": { @@ -8370,7 +8840,7 @@ ], "name": "userSubmittedAddressesCount", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8382,7 +8852,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 939, + "scope": 982, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8395,19 +8865,19 @@ "name": "address", "type": "address" }, - "id": 926, + "id": 969, "name": "ElementaryTypeName", - "src": "6237:7:4" + "src": "6662:7:4" } ], - "id": 927, + "id": 970, "name": "VariableDeclaration", - "src": "6237:14:4" + "src": "6662:14:4" } ], - "id": 928, + "id": 971, "name": "ParameterList", - "src": "6236:16:4" + "src": "6661:16:4" }, { "children": [ @@ -8415,7 +8885,7 @@ "attributes": { "constant": false, "name": "", - "scope": 939, + "scope": 982, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8428,25 +8898,25 @@ "name": "uint256", "type": "uint256" }, - "id": 929, + "id": 972, "name": "ElementaryTypeName", - "src": "6282:7:4" + "src": "6707:7:4" } ], - "id": 930, + "id": 973, "name": "VariableDeclaration", - "src": "6282:7:4" + "src": "6707:7:4" } ], - "id": 931, + "id": 974, "name": "ParameterList", - "src": "6281:9:4" + "src": "6706:9:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 931 + "functionReturnParameters": 974 }, "children": [ { @@ -8469,7 +8939,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -8489,13 +8959,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 932, + "id": 975, "name": "Identifier", - "src": "6312:5:4" + "src": "6737:5:4" }, { "attributes": { @@ -8503,43 +8973,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 927, + "referencedDeclaration": 970, "type": "address", "value": "wallet" }, - "id": 933, + "id": 976, "name": "Identifier", - "src": "6318:6:4" + "src": "6743:6:4" } ], - "id": 934, + "id": 977, "name": "IndexAccess", - "src": "6312:13:4" + "src": "6737:13:4" } ], - "id": 935, + "id": 978, "name": "MemberAccess", - "src": "6312:31:4" + "src": "6737:31:4" } ], - "id": 936, + "id": 979, "name": "MemberAccess", - "src": "6312:38:4" + "src": "6737:38:4" } ], - "id": 937, + "id": 980, "name": "Return", - "src": "6305:45:4" + "src": "6730:45:4" } ], - "id": 938, + "id": 981, "name": "Block", - "src": "6295:62:4" + "src": "6720:62:4" } ], - "id": 939, + "id": 982, "name": "FunctionDefinition", - "src": "6200:157:4" + "src": "6625:157:4" }, { "attributes": { @@ -8551,7 +9021,7 @@ ], "name": "userConfirmedAddressesCount", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -8563,7 +9033,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 979, + "scope": 1022, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -8576,19 +9046,19 @@ "name": "address", "type": "address" }, - "id": 940, + "id": 983, "name": "ElementaryTypeName", - "src": "6502:7:4" + "src": "6927:7:4" } ], - "id": 941, + "id": 984, "name": "VariableDeclaration", - "src": "6502:14:4" + "src": "6927:14:4" } ], - "id": 942, + "id": 985, "name": "ParameterList", - "src": "6501:16:4" + "src": "6926:16:4" }, { "children": [ @@ -8596,7 +9066,7 @@ "attributes": { "constant": false, "name": "", - "scope": 979, + "scope": 1022, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8609,26 +9079,26 @@ "name": "uint256", "type": "uint256" }, - "id": 943, + "id": 986, "name": "ElementaryTypeName", - "src": "6547:7:4" + "src": "6972:7:4" } ], - "id": 944, + "id": 987, "name": "VariableDeclaration", - "src": "6547:7:4" + "src": "6972:7:4" } ], - "id": 945, + "id": 988, "name": "ParameterList", - "src": "6546:9:4" + "src": "6971:9:4" }, { "children": [ { "attributes": { "assignments": [ - 947 + 990 ] }, "children": [ @@ -8636,7 +9106,7 @@ "attributes": { "constant": false, "name": "c", - "scope": 979, + "scope": 1022, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8649,14 +9119,14 @@ "name": "uint256", "type": "uint256" }, - "id": 946, + "id": 989, "name": "ElementaryTypeName", - "src": "6570:7:4" + "src": "6995:7:4" } ], - "id": 947, + "id": 990, "name": "VariableDeclaration", - "src": "6570:9:4" + "src": "6995:9:4" }, { "attributes": { @@ -8671,21 +9141,21 @@ "type": "int_const 0", "value": "0" }, - "id": 948, + "id": 991, "name": "Literal", - "src": "6582:1:4" + "src": "7007:1:4" } ], - "id": 949, + "id": 992, "name": "VariableDeclarationStatement", - "src": "6570:13:4" + "src": "6995:13:4" }, { "children": [ { "attributes": { "assignments": [ - 951 + 994 ] }, "children": [ @@ -8693,7 +9163,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 979, + "scope": 1022, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -8706,14 +9176,14 @@ "name": "uint256", "type": "uint256" }, - "id": 950, + "id": 993, "name": "ElementaryTypeName", - "src": "6598:7:4" + "src": "7023:7:4" } ], - "id": 951, + "id": 994, "name": "VariableDeclaration", - "src": "6598:10:4" + "src": "7023:10:4" }, { "attributes": { @@ -8728,14 +9198,14 @@ "type": "int_const 0", "value": "0" }, - "id": 952, + "id": 995, "name": "Literal", - "src": "6611:1:4" + "src": "7036:1:4" } ], - "id": 953, + "id": 996, "name": "VariableDeclarationStatement", - "src": "6598:14:4" + "src": "7023:14:4" }, { "attributes": { @@ -8758,13 +9228,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 951, + "referencedDeclaration": 994, "type": "uint256", "value": "ai" }, - "id": 954, + "id": 997, "name": "Identifier", - "src": "6614:2:4" + "src": "7039:2:4" }, { "attributes": { @@ -8786,7 +9256,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -8806,13 +9276,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 955, + "id": 998, "name": "Identifier", - "src": "6619:5:4" + "src": "7044:5:4" }, { "attributes": { @@ -8820,33 +9290,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 941, + "referencedDeclaration": 984, "type": "address", "value": "wallet" }, - "id": 956, + "id": 999, "name": "Identifier", - "src": "6625:6:4" + "src": "7050:6:4" } ], - "id": 957, + "id": 1000, "name": "IndexAccess", - "src": "6619:13:4" + "src": "7044:13:4" } ], - "id": 958, + "id": 1001, "name": "MemberAccess", - "src": "6619:31:4" + "src": "7044:31:4" } ], - "id": 959, + "id": 1002, "name": "MemberAccess", - "src": "6619:38:4" + "src": "7044:38:4" } ], - "id": 960, + "id": 1003, "name": "BinaryOperation", - "src": "6614:43:4" + "src": "7039:43:4" }, { "children": [ @@ -8868,23 +9338,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 951, + "referencedDeclaration": 994, "type": "uint256", "value": "ai" }, - "id": 961, + "id": 1004, "name": "Identifier", - "src": "6659:2:4" + "src": "7084:2:4" } ], - "id": 962, + "id": 1005, "name": "UnaryOperation", - "src": "6659:4:4" + "src": "7084:4:4" } ], - "id": 963, + "id": 1006, "name": "ExpressionStatement", - "src": "6659:4:4" + "src": "7084:4:4" }, { "children": [ @@ -8923,13 +9393,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 658, + "referencedDeclaration": 679, "type": "function (address,uint256) view returns (bool)", "value": "userAddressConfirmed" }, - "id": 964, + "id": 1007, "name": "Identifier", - "src": "6683:20:4" + "src": "7108:20:4" }, { "attributes": { @@ -8937,13 +9407,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 941, + "referencedDeclaration": 984, "type": "address", "value": "wallet" }, - "id": 965, + "id": 1008, "name": "Identifier", - "src": "6704:6:4" + "src": "7129:6:4" }, { "attributes": { @@ -8951,18 +9421,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 951, + "referencedDeclaration": 994, "type": "uint256", "value": "ai" }, - "id": 966, + "id": 1009, "name": "Identifier", - "src": "6712:2:4" + "src": "7137:2:4" } ], - "id": 967, + "id": 1010, "name": "FunctionCall", - "src": "6683:32:4" + "src": "7108:32:4" }, { "children": [ @@ -8985,13 +9455,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 947, + "referencedDeclaration": 990, "type": "uint256", "value": "c" }, - "id": 968, + "id": 1011, "name": "Identifier", - "src": "6735:1:4" + "src": "7160:1:4" }, { "attributes": { @@ -9006,43 +9476,43 @@ "type": "int_const 1", "value": "1" }, - "id": 969, + "id": 1012, "name": "Literal", - "src": "6740:1:4" + "src": "7165:1:4" } ], - "id": 970, + "id": 1013, "name": "Assignment", - "src": "6735:6:4" + "src": "7160:6:4" } ], - "id": 971, + "id": 1014, "name": "ExpressionStatement", - "src": "6735:6:4" + "src": "7160:6:4" } ], - "id": 972, + "id": 1015, "name": "Block", - "src": "6717:39:4" + "src": "7142:39:4" } ], - "id": 973, + "id": 1016, "name": "IfStatement", - "src": "6679:77:4" + "src": "7104:77:4" } ], - "id": 974, + "id": 1017, "name": "Block", - "src": "6665:101:4" + "src": "7090:101:4" } ], - "id": 975, + "id": 1018, "name": "ForStatement", - "src": "6593:173:4" + "src": "7018:173:4" }, { "attributes": { - "functionReturnParameters": 945 + "functionReturnParameters": 988 }, "children": [ { @@ -9051,28 +9521,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 947, + "referencedDeclaration": 990, "type": "uint256", "value": "c" }, - "id": 976, + "id": 1019, "name": "Identifier", - "src": "6782:1:4" + "src": "7207:1:4" } ], - "id": 977, + "id": 1020, "name": "Return", - "src": "6775:8:4" + "src": "7200:8:4" } ], - "id": 978, + "id": 1021, "name": "Block", - "src": "6560:230:4" + "src": "6985:230:4" } ], - "id": 979, + "id": 1022, "name": "FunctionDefinition", - "src": "6465:325:4" + "src": "6890:325:4" }, { "attributes": { @@ -9081,7 +9551,7 @@ "isConstructor": false, "name": "userAddress", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -9093,7 +9563,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 1037, + "scope": 1080, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -9106,20 +9576,20 @@ "name": "address", "type": "address" }, - "id": 980, + "id": 1023, "name": "ElementaryTypeName", - "src": "6817:7:4" + "src": "7242:7:4" } ], - "id": 981, + "id": 1024, "name": "VariableDeclaration", - "src": "6817:14:4" + "src": "7242:14:4" }, { "attributes": { "constant": false, "name": "addressIndex", - "scope": 1037, + "scope": 1080, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -9132,19 +9602,19 @@ "name": "uint256", "type": "uint256" }, - "id": 982, + "id": 1025, "name": "ElementaryTypeName", - "src": "6833:7:4" + "src": "7258:7:4" } ], - "id": 983, + "id": 1026, "name": "VariableDeclaration", - "src": "6833:20:4" + "src": "7258:20:4" } ], - "id": 984, + "id": 1027, "name": "ParameterList", - "src": "6816:38:4" + "src": "7241:38:4" }, { "children": [ @@ -9152,7 +9622,7 @@ "attributes": { "constant": false, "name": "country", - "scope": 1037, + "scope": 1080, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9165,20 +9635,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 988, + "id": 1031, "name": "ElementaryTypeName", - "src": "6917:6:4" + "src": "7342:6:4" } ], - "id": 989, + "id": 1032, "name": "VariableDeclaration", - "src": "6917:14:4" + "src": "7342:14:4" }, { "attributes": { "constant": false, "name": "state", - "scope": 1037, + "scope": 1080, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9191,20 +9661,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 990, + "id": 1033, "name": "ElementaryTypeName", - "src": "6933:6:4" + "src": "7358:6:4" } ], - "id": 991, + "id": 1034, "name": "VariableDeclaration", - "src": "6933:12:4" + "src": "7358:12:4" }, { "attributes": { "constant": false, "name": "city", - "scope": 1037, + "scope": 1080, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9217,20 +9687,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 992, + "id": 1035, "name": "ElementaryTypeName", - "src": "6947:6:4" + "src": "7372:6:4" } ], - "id": 993, + "id": 1036, "name": "VariableDeclaration", - "src": "6947:11:4" + "src": "7372:11:4" }, { "attributes": { "constant": false, "name": "location", - "scope": 1037, + "scope": 1080, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9243,20 +9713,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 994, + "id": 1037, "name": "ElementaryTypeName", - "src": "6960:6:4" + "src": "7385:6:4" } ], - "id": 995, + "id": 1038, "name": "VariableDeclaration", - "src": "6960:15:4" + "src": "7385:15:4" }, { "attributes": { "constant": false, "name": "zip", - "scope": 1037, + "scope": 1080, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9269,19 +9739,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 996, + "id": 1039, "name": "ElementaryTypeName", - "src": "6977:6:4" + "src": "7402:6:4" } ], - "id": 997, + "id": 1040, "name": "VariableDeclaration", - "src": "6977:10:4" + "src": "7402:10:4" } ], - "id": 998, + "id": 1041, "name": "ParameterList", - "src": "6907:81:4" + "src": "7332:81:4" }, { "children": [ @@ -9291,13 +9761,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 985, + "id": 1028, "name": "Identifier", - "src": "6875:15:4" + "src": "7300:15:4" }, { "attributes": { @@ -9305,24 +9775,24 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 981, + "referencedDeclaration": 1024, "type": "address", "value": "wallet" }, - "id": 986, + "id": 1029, "name": "Identifier", - "src": "6891:6:4" + "src": "7316:6:4" } ], - "id": 987, + "id": 1030, "name": "ModifierInvocation", - "src": "6875:23:4" + "src": "7300:23:4" }, { "children": [ { "attributes": { - "functionReturnParameters": 998 + "functionReturnParameters": 1041 }, "children": [ { @@ -9344,7 +9814,7 @@ "isPure": false, "lValueRequested": false, "member_name": "country", - "referencedDeclaration": 381, + "referencedDeclaration": 394, "type": "string storage ref" }, "children": [ @@ -9366,7 +9836,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9386,13 +9856,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 999, + "id": 1042, "name": "Identifier", - "src": "7024:5:4" + "src": "7449:5:4" }, { "attributes": { @@ -9400,23 +9870,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 981, + "referencedDeclaration": 1024, "type": "address", "value": "wallet" }, - "id": 1000, + "id": 1043, "name": "Identifier", - "src": "7030:6:4" + "src": "7455:6:4" } ], - "id": 1001, + "id": 1044, "name": "IndexAccess", - "src": "7024:13:4" + "src": "7449:13:4" } ], - "id": 1002, + "id": 1045, "name": "MemberAccess", - "src": "7024:31:4" + "src": "7449:31:4" }, { "attributes": { @@ -9424,23 +9894,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 983, + "referencedDeclaration": 1026, "type": "uint256", "value": "addressIndex" }, - "id": 1003, + "id": 1046, "name": "Identifier", - "src": "7056:12:4" + "src": "7481:12:4" } ], - "id": 1004, + "id": 1047, "name": "IndexAccess", - "src": "7024:45:4" + "src": "7449:45:4" } ], - "id": 1005, + "id": 1048, "name": "MemberAccess", - "src": "7024:53:4" + "src": "7449:53:4" }, { "attributes": { @@ -9450,7 +9920,7 @@ "isPure": false, "lValueRequested": false, "member_name": "state", - "referencedDeclaration": 383, + "referencedDeclaration": 396, "type": "string storage ref" }, "children": [ @@ -9472,7 +9942,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9492,13 +9962,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1006, + "id": 1049, "name": "Identifier", - "src": "7091:5:4" + "src": "7516:5:4" }, { "attributes": { @@ -9506,23 +9976,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 981, + "referencedDeclaration": 1024, "type": "address", "value": "wallet" }, - "id": 1007, + "id": 1050, "name": "Identifier", - "src": "7097:6:4" + "src": "7522:6:4" } ], - "id": 1008, + "id": 1051, "name": "IndexAccess", - "src": "7091:13:4" + "src": "7516:13:4" } ], - "id": 1009, + "id": 1052, "name": "MemberAccess", - "src": "7091:31:4" + "src": "7516:31:4" }, { "attributes": { @@ -9530,23 +10000,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 983, + "referencedDeclaration": 1026, "type": "uint256", "value": "addressIndex" }, - "id": 1010, + "id": 1053, "name": "Identifier", - "src": "7123:12:4" + "src": "7548:12:4" } ], - "id": 1011, + "id": 1054, "name": "IndexAccess", - "src": "7091:45:4" + "src": "7516:45:4" } ], - "id": 1012, + "id": 1055, "name": "MemberAccess", - "src": "7091:51:4" + "src": "7516:51:4" }, { "attributes": { @@ -9556,7 +10026,7 @@ "isPure": false, "lValueRequested": false, "member_name": "city", - "referencedDeclaration": 385, + "referencedDeclaration": 398, "type": "string storage ref" }, "children": [ @@ -9578,7 +10048,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9598,13 +10068,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1013, + "id": 1056, "name": "Identifier", - "src": "7156:5:4" + "src": "7581:5:4" }, { "attributes": { @@ -9612,23 +10082,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 981, + "referencedDeclaration": 1024, "type": "address", "value": "wallet" }, - "id": 1014, + "id": 1057, "name": "Identifier", - "src": "7162:6:4" + "src": "7587:6:4" } ], - "id": 1015, + "id": 1058, "name": "IndexAccess", - "src": "7156:13:4" + "src": "7581:13:4" } ], - "id": 1016, + "id": 1059, "name": "MemberAccess", - "src": "7156:31:4" + "src": "7581:31:4" }, { "attributes": { @@ -9636,23 +10106,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 983, + "referencedDeclaration": 1026, "type": "uint256", "value": "addressIndex" }, - "id": 1017, + "id": 1060, "name": "Identifier", - "src": "7188:12:4" + "src": "7613:12:4" } ], - "id": 1018, + "id": 1061, "name": "IndexAccess", - "src": "7156:45:4" + "src": "7581:45:4" } ], - "id": 1019, + "id": 1062, "name": "MemberAccess", - "src": "7156:50:4" + "src": "7581:50:4" }, { "attributes": { @@ -9662,7 +10132,7 @@ "isPure": false, "lValueRequested": false, "member_name": "location", - "referencedDeclaration": 387, + "referencedDeclaration": 400, "type": "string storage ref" }, "children": [ @@ -9684,7 +10154,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9704,13 +10174,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1020, + "id": 1063, "name": "Identifier", - "src": "7220:5:4" + "src": "7645:5:4" }, { "attributes": { @@ -9718,23 +10188,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 981, + "referencedDeclaration": 1024, "type": "address", "value": "wallet" }, - "id": 1021, + "id": 1064, "name": "Identifier", - "src": "7226:6:4" + "src": "7651:6:4" } ], - "id": 1022, + "id": 1065, "name": "IndexAccess", - "src": "7220:13:4" + "src": "7645:13:4" } ], - "id": 1023, + "id": 1066, "name": "MemberAccess", - "src": "7220:31:4" + "src": "7645:31:4" }, { "attributes": { @@ -9742,23 +10212,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 983, + "referencedDeclaration": 1026, "type": "uint256", "value": "addressIndex" }, - "id": 1024, + "id": 1067, "name": "Identifier", - "src": "7252:12:4" + "src": "7677:12:4" } ], - "id": 1025, + "id": 1068, "name": "IndexAccess", - "src": "7220:45:4" + "src": "7645:45:4" } ], - "id": 1026, + "id": 1069, "name": "MemberAccess", - "src": "7220:54:4" + "src": "7645:54:4" }, { "attributes": { @@ -9768,7 +10238,7 @@ "isPure": false, "lValueRequested": false, "member_name": "zip", - "referencedDeclaration": 389, + "referencedDeclaration": 402, "type": "string storage ref" }, "children": [ @@ -9790,7 +10260,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -9810,13 +10280,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1027, + "id": 1070, "name": "Identifier", - "src": "7288:5:4" + "src": "7713:5:4" }, { "attributes": { @@ -9824,23 +10294,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 981, + "referencedDeclaration": 1024, "type": "address", "value": "wallet" }, - "id": 1028, + "id": 1071, "name": "Identifier", - "src": "7294:6:4" + "src": "7719:6:4" } ], - "id": 1029, + "id": 1072, "name": "IndexAccess", - "src": "7288:13:4" + "src": "7713:13:4" } ], - "id": 1030, + "id": 1073, "name": "MemberAccess", - "src": "7288:31:4" + "src": "7713:31:4" }, { "attributes": { @@ -9848,43 +10318,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 983, + "referencedDeclaration": 1026, "type": "uint256", "value": "addressIndex" }, - "id": 1031, + "id": 1074, "name": "Identifier", - "src": "7320:12:4" + "src": "7745:12:4" } ], - "id": 1032, + "id": 1075, "name": "IndexAccess", - "src": "7288:45:4" + "src": "7713:45:4" } ], - "id": 1033, + "id": 1076, "name": "MemberAccess", - "src": "7288:49:4" + "src": "7713:49:4" } ], - "id": 1034, + "id": 1077, "name": "TupleExpression", - "src": "7010:337:4" + "src": "7435:337:4" } ], - "id": 1035, + "id": 1078, "name": "Return", - "src": "7003:344:4" + "src": "7428:344:4" } ], - "id": 1036, + "id": 1079, "name": "Block", - "src": "6993:361:4" + "src": "7418:361:4" } ], - "id": 1037, + "id": 1080, "name": "FunctionDefinition", - "src": "6796:558:4" + "src": "7221:558:4" }, { "attributes": { @@ -9893,7 +10363,7 @@ "isConstructor": false, "name": "userAddressInfo", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -9905,7 +10375,7 @@ "attributes": { "constant": false, "name": "wallet", - "scope": 1100, + "scope": 1143, "stateVariable": false, "storageLocation": "default", "type": "address", @@ -9918,20 +10388,20 @@ "name": "address", "type": "address" }, - "id": 1038, + "id": 1081, "name": "ElementaryTypeName", - "src": "7385:7:4" + "src": "7810:7:4" } ], - "id": 1039, + "id": 1082, "name": "VariableDeclaration", - "src": "7385:14:4" + "src": "7810:14:4" }, { "attributes": { "constant": false, "name": "addressIndex", - "scope": 1100, + "scope": 1143, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -9944,19 +10414,19 @@ "name": "uint256", "type": "uint256" }, - "id": 1040, + "id": 1083, "name": "ElementaryTypeName", - "src": "7401:7:4" + "src": "7826:7:4" } ], - "id": 1041, + "id": 1084, "name": "VariableDeclaration", - "src": "7401:20:4" + "src": "7826:20:4" } ], - "id": 1042, + "id": 1085, "name": "ParameterList", - "src": "7384:38:4" + "src": "7809:38:4" }, { "children": [ @@ -9964,7 +10434,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 1100, + "scope": 1143, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -9977,20 +10447,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1046, + "id": 1089, "name": "ElementaryTypeName", - "src": "7485:6:4" + "src": "7910:6:4" } ], - "id": 1047, + "id": 1090, "name": "VariableDeclaration", - "src": "7485:11:4" + "src": "7910:11:4" }, { "attributes": { "constant": false, "name": "creationBlock", - "scope": 1100, + "scope": 1143, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -10003,20 +10473,20 @@ "name": "uint256", "type": "uint256" }, - "id": 1048, + "id": 1091, "name": "ElementaryTypeName", - "src": "7506:7:4" + "src": "7931:7:4" } ], - "id": 1049, + "id": 1092, "name": "VariableDeclaration", - "src": "7506:21:4" + "src": "7931:21:4" }, { "attributes": { "constant": false, "name": "confirmationBlock", - "scope": 1100, + "scope": 1143, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -10029,20 +10499,20 @@ "name": "uint256", "type": "uint256" }, - "id": 1050, + "id": 1093, "name": "ElementaryTypeName", - "src": "7537:7:4" + "src": "7962:7:4" } ], - "id": 1051, + "id": 1094, "name": "VariableDeclaration", - "src": "7537:25:4" + "src": "7962:25:4" }, { "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 1100, + "scope": 1143, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -10055,19 +10525,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1052, + "id": 1095, "name": "ElementaryTypeName", - "src": "7572:7:4" + "src": "7997:7:4" } ], - "id": 1053, + "id": 1096, "name": "VariableDeclaration", - "src": "7572:24:4" + "src": "7997:24:4" } ], - "id": 1054, + "id": 1097, "name": "ParameterList", - "src": "7475:127:4" + "src": "7900:127:4" }, { "children": [ @@ -10077,13 +10547,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 1043, + "id": 1086, "name": "Identifier", - "src": "7443:15:4" + "src": "7868:15:4" }, { "attributes": { @@ -10091,25 +10561,25 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1039, + "referencedDeclaration": 1082, "type": "address", "value": "wallet" }, - "id": 1044, + "id": 1087, "name": "Identifier", - "src": "7459:6:4" + "src": "7884:6:4" } ], - "id": 1045, + "id": 1088, "name": "ModifierInvocation", - "src": "7443:23:4" + "src": "7868:23:4" }, { "children": [ { "attributes": { "assignments": [ - 1056 + 1099 ] }, "children": [ @@ -10117,7 +10587,7 @@ "attributes": { "constant": false, "name": "_confirmationBlock", - "scope": 1100, + "scope": 1143, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -10130,14 +10600,14 @@ "name": "uint256", "type": "uint256" }, - "id": 1055, + "id": 1098, "name": "ElementaryTypeName", - "src": "7613:7:4" + "src": "8038:7:4" } ], - "id": 1056, + "id": 1099, "name": "VariableDeclaration", - "src": "7613:26:4" + "src": "8038:26:4" }, { "attributes": { @@ -10167,7 +10637,7 @@ "isPure": false, "lValueRequested": false, "member_name": "decodeConfirmation", - "referencedDeclaration": 366, + "referencedDeclaration": 378, "type": "function (bytes32) pure returns (uint256)" }, "children": [ @@ -10177,18 +10647,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 367, + "referencedDeclaration": 379, "type": "type(library PhysicalAddressClaim)", "value": "PhysicalAddressClaim" }, - "id": 1057, + "id": 1100, "name": "Identifier", - "src": "7642:20:4" + "src": "8067:20:4" } ], - "id": 1058, + "id": 1101, "name": "MemberAccess", - "src": "7642:39:4" + "src": "8067:39:4" }, { "attributes": { @@ -10226,7 +10696,7 @@ "isPure": false, "lValueRequested": false, "member_name": "getClaim", - "referencedDeclaration": 192, + "referencedDeclaration": 261, "type": "function (address,address,bytes32) view external returns (bytes32)" }, "children": [ @@ -10236,18 +10706,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 377, + "referencedDeclaration": 390, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 1059, + "id": 1102, "name": "Identifier", - "src": "7682:8:4" + "src": "8107:8:4" } ], - "id": 1060, + "id": 1103, "name": "MemberAccess", - "src": "7682:17:4" + "src": "8107:17:4" }, { "attributes": { @@ -10268,7 +10738,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1583", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1678", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -10279,9 +10749,9 @@ "type": "type(address)", "value": "address" }, - "id": 1061, + "id": 1104, "name": "ElementaryTypeNameExpression", - "src": "7713:7:4" + "src": "8138:7:4" }, { "attributes": { @@ -10289,18 +10759,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1614, + "referencedDeclaration": 1839, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 1062, + "id": 1105, "name": "Identifier", - "src": "7721:4:4" + "src": "8146:4:4" } ], - "id": 1063, + "id": 1106, "name": "FunctionCall", - "src": "7713:13:4" + "src": "8138:13:4" }, { "attributes": { @@ -10308,13 +10778,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1039, + "referencedDeclaration": 1082, "type": "address", "value": "wallet" }, - "id": 1064, + "id": 1107, "name": "Identifier", - "src": "7740:6:4" + "src": "8165:6:4" }, { "attributes": { @@ -10324,7 +10794,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 393, + "referencedDeclaration": 406, "type": "bytes32" }, "children": [ @@ -10346,7 +10816,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10366,13 +10836,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1065, + "id": 1108, "name": "Identifier", - "src": "7760:5:4" + "src": "8185:5:4" }, { "attributes": { @@ -10380,23 +10850,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1039, + "referencedDeclaration": 1082, "type": "address", "value": "wallet" }, - "id": 1066, + "id": 1109, "name": "Identifier", - "src": "7766:6:4" + "src": "8191:6:4" } ], - "id": 1067, + "id": 1110, "name": "IndexAccess", - "src": "7760:13:4" + "src": "8185:13:4" } ], - "id": 1068, + "id": 1111, "name": "MemberAccess", - "src": "7760:31:4" + "src": "8185:31:4" }, { "attributes": { @@ -10404,42 +10874,42 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1041, + "referencedDeclaration": 1084, "type": "uint256", "value": "addressIndex" }, - "id": 1069, + "id": 1112, "name": "Identifier", - "src": "7792:12:4" + "src": "8217:12:4" } ], - "id": 1070, + "id": 1113, "name": "IndexAccess", - "src": "7760:45:4" + "src": "8185:45:4" } ], - "id": 1071, + "id": 1114, "name": "MemberAccess", - "src": "7760:62:4" + "src": "8185:62:4" } ], - "id": 1072, + "id": 1115, "name": "FunctionCall", - "src": "7682:141:4" + "src": "8107:141:4" } ], - "id": 1073, + "id": 1116, "name": "FunctionCall", - "src": "7642:191:4" + "src": "8067:191:4" } ], - "id": 1074, + "id": 1117, "name": "VariableDeclarationStatement", - "src": "7613:220:4" + "src": "8038:220:4" }, { "attributes": { - "functionReturnParameters": 1054 + "functionReturnParameters": 1097 }, "children": [ { @@ -10461,7 +10931,7 @@ "isPure": false, "lValueRequested": false, "member_name": "name", - "referencedDeclaration": 379, + "referencedDeclaration": 392, "type": "string storage ref" }, "children": [ @@ -10483,7 +10953,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10503,13 +10973,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1075, + "id": 1118, "name": "Identifier", - "src": "7864:5:4" + "src": "8289:5:4" }, { "attributes": { @@ -10517,23 +10987,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1039, + "referencedDeclaration": 1082, "type": "address", "value": "wallet" }, - "id": 1076, + "id": 1119, "name": "Identifier", - "src": "7870:6:4" + "src": "8295:6:4" } ], - "id": 1077, + "id": 1120, "name": "IndexAccess", - "src": "7864:13:4" + "src": "8289:13:4" } ], - "id": 1078, + "id": 1121, "name": "MemberAccess", - "src": "7864:31:4" + "src": "8289:31:4" }, { "attributes": { @@ -10541,23 +11011,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1041, + "referencedDeclaration": 1084, "type": "uint256", "value": "addressIndex" }, - "id": 1079, + "id": 1122, "name": "Identifier", - "src": "7896:12:4" + "src": "8321:12:4" } ], - "id": 1080, + "id": 1123, "name": "IndexAccess", - "src": "7864:45:4" + "src": "8289:45:4" } ], - "id": 1081, + "id": 1124, "name": "MemberAccess", - "src": "7864:50:4" + "src": "8289:50:4" }, { "attributes": { @@ -10567,7 +11037,7 @@ "isPure": false, "lValueRequested": false, "member_name": "creationBlock", - "referencedDeclaration": 391, + "referencedDeclaration": 404, "type": "uint256" }, "children": [ @@ -10589,7 +11059,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10609,13 +11079,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1082, + "id": 1125, "name": "Identifier", - "src": "7928:5:4" + "src": "8353:5:4" }, { "attributes": { @@ -10623,23 +11093,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1039, + "referencedDeclaration": 1082, "type": "address", "value": "wallet" }, - "id": 1083, + "id": 1126, "name": "Identifier", - "src": "7934:6:4" + "src": "8359:6:4" } ], - "id": 1084, + "id": 1127, "name": "IndexAccess", - "src": "7928:13:4" + "src": "8353:13:4" } ], - "id": 1085, + "id": 1128, "name": "MemberAccess", - "src": "7928:31:4" + "src": "8353:31:4" }, { "attributes": { @@ -10647,23 +11117,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1041, + "referencedDeclaration": 1084, "type": "uint256", "value": "addressIndex" }, - "id": 1086, + "id": 1129, "name": "Identifier", - "src": "7960:12:4" + "src": "8385:12:4" } ], - "id": 1087, + "id": 1130, "name": "IndexAccess", - "src": "7928:45:4" + "src": "8353:45:4" } ], - "id": 1088, + "id": 1131, "name": "MemberAccess", - "src": "7928:59:4" + "src": "8353:59:4" }, { "attributes": { @@ -10671,13 +11141,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1056, + "referencedDeclaration": 1099, "type": "uint256", "value": "_confirmationBlock" }, - "id": 1089, + "id": 1132, "name": "Identifier", - "src": "8001:18:4" + "src": "8426:18:4" }, { "attributes": { @@ -10687,7 +11157,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 393, + "referencedDeclaration": 406, "type": "bytes32" }, "children": [ @@ -10709,7 +11179,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -10729,13 +11199,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1090, + "id": 1133, "name": "Identifier", - "src": "8033:5:4" + "src": "8458:5:4" }, { "attributes": { @@ -10743,23 +11213,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1039, + "referencedDeclaration": 1082, "type": "address", "value": "wallet" }, - "id": 1091, + "id": 1134, "name": "Identifier", - "src": "8039:6:4" + "src": "8464:6:4" } ], - "id": 1092, + "id": 1135, "name": "IndexAccess", - "src": "8033:13:4" + "src": "8458:13:4" } ], - "id": 1093, + "id": 1136, "name": "MemberAccess", - "src": "8033:31:4" + "src": "8458:31:4" }, { "attributes": { @@ -10767,43 +11237,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1041, + "referencedDeclaration": 1084, "type": "uint256", "value": "addressIndex" }, - "id": 1094, + "id": 1137, "name": "Identifier", - "src": "8065:12:4" + "src": "8490:12:4" } ], - "id": 1095, + "id": 1138, "name": "IndexAccess", - "src": "8033:45:4" + "src": "8458:45:4" } ], - "id": 1096, + "id": 1139, "name": "MemberAccess", - "src": "8033:62:4" + "src": "8458:62:4" } ], - "id": 1097, + "id": 1140, "name": "TupleExpression", - "src": "7850:255:4" + "src": "8275:255:4" } ], - "id": 1098, + "id": 1141, "name": "Return", - "src": "7843:262:4" + "src": "8268:262:4" } ], - "id": 1099, + "id": 1142, "name": "Block", - "src": "7603:509:4" + "src": "8028:509:4" } ], - "id": 1100, + "id": 1143, "name": "FunctionDefinition", - "src": "7360:752:4" + "src": "7785:752:4" }, { "attributes": { @@ -10815,7 +11285,7 @@ ], "name": "registerAddress", "payable": true, - "scope": 1583, + "scope": 1678, "stateMutability": "payable", "superFunction": null, "visibility": "public" @@ -10827,7 +11297,7 @@ "attributes": { "constant": false, "name": "name", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10840,20 +11310,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1101, + "id": 1144, "name": "ElementaryTypeName", - "src": "8173:6:4" + "src": "8598:6:4" } ], - "id": 1102, + "id": 1145, "name": "VariableDeclaration", - "src": "8173:11:4" + "src": "8598:11:4" }, { "attributes": { "constant": false, "name": "country", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10866,20 +11336,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1103, + "id": 1146, "name": "ElementaryTypeName", - "src": "8194:6:4" + "src": "8619:6:4" } ], - "id": 1104, + "id": 1147, "name": "VariableDeclaration", - "src": "8194:14:4" + "src": "8619:14:4" }, { "attributes": { "constant": false, "name": "state", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10892,20 +11362,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1105, + "id": 1148, "name": "ElementaryTypeName", - "src": "8210:6:4" + "src": "8635:6:4" } ], - "id": 1106, + "id": 1149, "name": "VariableDeclaration", - "src": "8210:12:4" + "src": "8635:12:4" }, { "attributes": { "constant": false, "name": "city", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10918,20 +11388,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1107, + "id": 1150, "name": "ElementaryTypeName", - "src": "8224:6:4" + "src": "8649:6:4" } ], - "id": 1108, + "id": 1151, "name": "VariableDeclaration", - "src": "8224:11:4" + "src": "8649:11:4" }, { "attributes": { "constant": false, "name": "location", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10944,20 +11414,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1109, + "id": 1152, "name": "ElementaryTypeName", - "src": "8237:6:4" + "src": "8662:6:4" } ], - "id": 1110, + "id": 1153, "name": "VariableDeclaration", - "src": "8237:15:4" + "src": "8662:15:4" }, { "attributes": { "constant": false, "name": "zip", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -10970,20 +11440,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1111, + "id": 1154, "name": "ElementaryTypeName", - "src": "8254:6:4" + "src": "8679:6:4" } ], - "id": 1112, + "id": 1155, "name": "VariableDeclaration", - "src": "8254:10:4" + "src": "8679:10:4" }, { "attributes": { "constant": false, "name": "priceWei", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -10996,20 +11466,20 @@ "name": "uint256", "type": "uint256" }, - "id": 1113, + "id": 1156, "name": "ElementaryTypeName", - "src": "8274:7:4" + "src": "8699:7:4" } ], - "id": 1114, + "id": 1157, "name": "VariableDeclaration", - "src": "8274:16:4" + "src": "8699:16:4" }, { "attributes": { "constant": false, "name": "confirmationCodeSha3", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -11022,20 +11492,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1115, + "id": 1158, "name": "ElementaryTypeName", - "src": "8300:7:4" + "src": "8725:7:4" } ], - "id": 1116, + "id": 1159, "name": "VariableDeclaration", - "src": "8300:28:4" + "src": "8725:28:4" }, { "attributes": { "constant": false, "name": "sigV", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -11048,20 +11518,20 @@ "name": "uint8", "type": "uint8" }, - "id": 1117, + "id": 1160, "name": "ElementaryTypeName", - "src": "8330:5:4" + "src": "8755:5:4" } ], - "id": 1118, + "id": 1161, "name": "VariableDeclaration", - "src": "8330:10:4" + "src": "8755:10:4" }, { "attributes": { "constant": false, "name": "sigR", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -11074,20 +11544,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1119, + "id": 1162, "name": "ElementaryTypeName", - "src": "8342:7:4" + "src": "8767:7:4" } ], - "id": 1120, + "id": 1163, "name": "VariableDeclaration", - "src": "8342:12:4" + "src": "8767:12:4" }, { "attributes": { "constant": false, "name": "sigS", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -11100,19 +11570,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1121, + "id": 1164, "name": "ElementaryTypeName", - "src": "8356:7:4" + "src": "8781:7:4" } ], - "id": 1122, + "id": 1165, "name": "VariableDeclaration", - "src": "8356:12:4" + "src": "8781:12:4" } ], - "id": 1123, + "id": 1166, "name": "ParameterList", - "src": "8163:206:4" + "src": "8588:206:4" }, { "attributes": { @@ -11121,9 +11591,9 @@ ] }, "children": [], - "id": 1124, + "id": 1167, "name": "ParameterList", - "src": "8393:0:4" + "src": "8818:0:4" }, { "children": [ @@ -11155,13 +11625,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1125, + "id": 1168, "name": "Identifier", - "src": "8403:7:4" + "src": "8828:7:4" }, { "attributes": { @@ -11220,9 +11690,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1126, + "id": 1169, "name": "ElementaryTypeNameExpression", - "src": "8411:5:4" + "src": "8836:5:4" }, { "attributes": { @@ -11230,23 +11700,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1102, + "referencedDeclaration": 1145, "type": "string memory", "value": "name" }, - "id": 1127, + "id": 1170, "name": "Identifier", - "src": "8417:4:4" + "src": "8842:4:4" } ], - "id": 1128, + "id": 1171, "name": "FunctionCall", - "src": "8411:11:4" + "src": "8836:11:4" } ], - "id": 1129, + "id": 1172, "name": "MemberAccess", - "src": "8411:18:4" + "src": "8836:18:4" }, { "attributes": { @@ -11261,24 +11731,24 @@ "type": "int_const 0", "value": "0" }, - "id": 1130, + "id": 1173, "name": "Literal", - "src": "8432:1:4" + "src": "8857:1:4" } ], - "id": 1131, + "id": 1174, "name": "BinaryOperation", - "src": "8411:22:4" + "src": "8836:22:4" } ], - "id": 1132, + "id": 1175, "name": "FunctionCall", - "src": "8403:31:4" + "src": "8828:31:4" } ], - "id": 1133, + "id": 1176, "name": "ExpressionStatement", - "src": "8403:31:4" + "src": "8828:31:4" }, { "children": [ @@ -11308,13 +11778,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1134, + "id": 1177, "name": "Identifier", - "src": "8444:7:4" + "src": "8869:7:4" }, { "attributes": { @@ -11373,9 +11843,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1135, + "id": 1178, "name": "ElementaryTypeNameExpression", - "src": "8452:5:4" + "src": "8877:5:4" }, { "attributes": { @@ -11383,23 +11853,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1104, + "referencedDeclaration": 1147, "type": "string memory", "value": "country" }, - "id": 1136, + "id": 1179, "name": "Identifier", - "src": "8458:7:4" + "src": "8883:7:4" } ], - "id": 1137, + "id": 1180, "name": "FunctionCall", - "src": "8452:14:4" + "src": "8877:14:4" } ], - "id": 1138, + "id": 1181, "name": "MemberAccess", - "src": "8452:21:4" + "src": "8877:21:4" }, { "attributes": { @@ -11414,24 +11884,24 @@ "type": "int_const 0", "value": "0" }, - "id": 1139, + "id": 1182, "name": "Literal", - "src": "8476:1:4" + "src": "8901:1:4" } ], - "id": 1140, + "id": 1183, "name": "BinaryOperation", - "src": "8452:25:4" + "src": "8877:25:4" } ], - "id": 1141, + "id": 1184, "name": "FunctionCall", - "src": "8444:34:4" + "src": "8869:34:4" } ], - "id": 1142, + "id": 1185, "name": "ExpressionStatement", - "src": "8444:34:4" + "src": "8869:34:4" }, { "children": [ @@ -11461,13 +11931,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1143, + "id": 1186, "name": "Identifier", - "src": "8488:7:4" + "src": "8913:7:4" }, { "attributes": { @@ -11526,9 +11996,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1144, + "id": 1187, "name": "ElementaryTypeNameExpression", - "src": "8496:5:4" + "src": "8921:5:4" }, { "attributes": { @@ -11536,23 +12006,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1106, + "referencedDeclaration": 1149, "type": "string memory", "value": "state" }, - "id": 1145, + "id": 1188, "name": "Identifier", - "src": "8502:5:4" + "src": "8927:5:4" } ], - "id": 1146, + "id": 1189, "name": "FunctionCall", - "src": "8496:12:4" + "src": "8921:12:4" } ], - "id": 1147, + "id": 1190, "name": "MemberAccess", - "src": "8496:19:4" + "src": "8921:19:4" }, { "attributes": { @@ -11567,24 +12037,24 @@ "type": "int_const 0", "value": "0" }, - "id": 1148, + "id": 1191, "name": "Literal", - "src": "8518:1:4" + "src": "8943:1:4" } ], - "id": 1149, + "id": 1192, "name": "BinaryOperation", - "src": "8496:23:4" + "src": "8921:23:4" } ], - "id": 1150, + "id": 1193, "name": "FunctionCall", - "src": "8488:32:4" + "src": "8913:32:4" } ], - "id": 1151, + "id": 1194, "name": "ExpressionStatement", - "src": "8488:32:4" + "src": "8913:32:4" }, { "children": [ @@ -11614,13 +12084,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1152, + "id": 1195, "name": "Identifier", - "src": "8530:7:4" + "src": "8955:7:4" }, { "attributes": { @@ -11679,9 +12149,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1153, + "id": 1196, "name": "ElementaryTypeNameExpression", - "src": "8538:5:4" + "src": "8963:5:4" }, { "attributes": { @@ -11689,23 +12159,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1108, + "referencedDeclaration": 1151, "type": "string memory", "value": "city" }, - "id": 1154, + "id": 1197, "name": "Identifier", - "src": "8544:4:4" + "src": "8969:4:4" } ], - "id": 1155, + "id": 1198, "name": "FunctionCall", - "src": "8538:11:4" + "src": "8963:11:4" } ], - "id": 1156, + "id": 1199, "name": "MemberAccess", - "src": "8538:18:4" + "src": "8963:18:4" }, { "attributes": { @@ -11720,24 +12190,24 @@ "type": "int_const 0", "value": "0" }, - "id": 1157, + "id": 1200, "name": "Literal", - "src": "8559:1:4" + "src": "8984:1:4" } ], - "id": 1158, + "id": 1201, "name": "BinaryOperation", - "src": "8538:22:4" + "src": "8963:22:4" } ], - "id": 1159, + "id": 1202, "name": "FunctionCall", - "src": "8530:31:4" + "src": "8955:31:4" } ], - "id": 1160, + "id": 1203, "name": "ExpressionStatement", - "src": "8530:31:4" + "src": "8955:31:4" }, { "children": [ @@ -11767,13 +12237,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1161, + "id": 1204, "name": "Identifier", - "src": "8571:7:4" + "src": "8996:7:4" }, { "attributes": { @@ -11832,9 +12302,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1162, + "id": 1205, "name": "ElementaryTypeNameExpression", - "src": "8579:5:4" + "src": "9004:5:4" }, { "attributes": { @@ -11842,23 +12312,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1110, + "referencedDeclaration": 1153, "type": "string memory", "value": "location" }, - "id": 1163, + "id": 1206, "name": "Identifier", - "src": "8585:8:4" + "src": "9010:8:4" } ], - "id": 1164, + "id": 1207, "name": "FunctionCall", - "src": "8579:15:4" + "src": "9004:15:4" } ], - "id": 1165, + "id": 1208, "name": "MemberAccess", - "src": "8579:22:4" + "src": "9004:22:4" }, { "attributes": { @@ -11873,24 +12343,24 @@ "type": "int_const 0", "value": "0" }, - "id": 1166, + "id": 1209, "name": "Literal", - "src": "8604:1:4" + "src": "9029:1:4" } ], - "id": 1167, + "id": 1210, "name": "BinaryOperation", - "src": "8579:26:4" + "src": "9004:26:4" } ], - "id": 1168, + "id": 1211, "name": "FunctionCall", - "src": "8571:35:4" + "src": "8996:35:4" } ], - "id": 1169, + "id": 1212, "name": "ExpressionStatement", - "src": "8571:35:4" + "src": "8996:35:4" }, { "children": [ @@ -11920,13 +12390,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1170, + "id": 1213, "name": "Identifier", - "src": "8616:7:4" + "src": "9041:7:4" }, { "attributes": { @@ -11985,9 +12455,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1171, + "id": 1214, "name": "ElementaryTypeNameExpression", - "src": "8624:5:4" + "src": "9049:5:4" }, { "attributes": { @@ -11995,23 +12465,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1112, + "referencedDeclaration": 1155, "type": "string memory", "value": "zip" }, - "id": 1172, + "id": 1215, "name": "Identifier", - "src": "8630:3:4" + "src": "9055:3:4" } ], - "id": 1173, + "id": 1216, "name": "FunctionCall", - "src": "8624:10:4" + "src": "9049:10:4" } ], - "id": 1174, + "id": 1217, "name": "MemberAccess", - "src": "8624:17:4" + "src": "9049:17:4" }, { "attributes": { @@ -12026,24 +12496,24 @@ "type": "int_const 0", "value": "0" }, - "id": 1175, + "id": 1218, "name": "Literal", - "src": "8644:1:4" + "src": "9069:1:4" } ], - "id": 1176, + "id": 1219, "name": "BinaryOperation", - "src": "8624:21:4" + "src": "9049:21:4" } ], - "id": 1177, + "id": 1220, "name": "FunctionCall", - "src": "8616:30:4" + "src": "9041:30:4" } ], - "id": 1178, + "id": 1221, "name": "ExpressionStatement", - "src": "8616:30:4" + "src": "9041:30:4" }, { "children": [ @@ -12073,13 +12543,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1179, + "id": 1222, "name": "Identifier", - "src": "8656:7:4" + "src": "9081:7:4" }, { "attributes": { @@ -12114,18 +12584,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1180, + "id": 1223, "name": "Identifier", - "src": "8664:3:4" + "src": "9089:3:4" } ], - "id": 1181, + "id": 1224, "name": "MemberAccess", - "src": "8664:9:4" + "src": "9089:9:4" }, { "attributes": { @@ -12133,33 +12603,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1114, + "referencedDeclaration": 1157, "type": "uint256", "value": "priceWei" }, - "id": 1182, + "id": 1225, "name": "Identifier", - "src": "8677:8:4" + "src": "9102:8:4" } ], - "id": 1183, + "id": 1226, "name": "BinaryOperation", - "src": "8664:21:4" + "src": "9089:21:4" } ], - "id": 1184, + "id": 1227, "name": "FunctionCall", - "src": "8656:30:4" + "src": "9081:30:4" } ], - "id": 1185, + "id": 1228, "name": "ExpressionStatement", - "src": "8656:30:4" + "src": "9081:30:4" }, { "attributes": { "assignments": [ - 1187 + 1230 ] }, "children": [ @@ -12167,7 +12637,7 @@ "attributes": { "constant": false, "name": "data", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -12180,14 +12650,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1186, + "id": 1229, "name": "ElementaryTypeName", - "src": "8697:7:4" + "src": "9122:7:4" } ], - "id": 1187, + "id": 1230, "name": "VariableDeclaration", - "src": "8697:12:4" + "src": "9122:12:4" }, { "attributes": { @@ -12247,13 +12717,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1589, + "referencedDeclaration": 1814, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1188, + "id": 1231, "name": "Identifier", - "src": "8712:9:4" + "src": "9137:9:4" }, { "attributes": { @@ -12273,18 +12743,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1189, + "id": 1232, "name": "Identifier", - "src": "8735:3:4" + "src": "9160:3:4" } ], - "id": 1190, + "id": 1233, "name": "MemberAccess", - "src": "8735:10:4" + "src": "9160:10:4" }, { "attributes": { @@ -12292,13 +12762,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1102, + "referencedDeclaration": 1145, "type": "string memory", "value": "name" }, - "id": 1191, + "id": 1234, "name": "Identifier", - "src": "8759:4:4" + "src": "9184:4:4" }, { "attributes": { @@ -12306,13 +12776,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1104, + "referencedDeclaration": 1147, "type": "string memory", "value": "country" }, - "id": 1192, + "id": 1235, "name": "Identifier", - "src": "8777:7:4" + "src": "9202:7:4" }, { "attributes": { @@ -12320,13 +12790,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1106, + "referencedDeclaration": 1149, "type": "string memory", "value": "state" }, - "id": 1193, + "id": 1236, "name": "Identifier", - "src": "8798:5:4" + "src": "9223:5:4" }, { "attributes": { @@ -12334,13 +12804,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1108, + "referencedDeclaration": 1151, "type": "string memory", "value": "city" }, - "id": 1194, + "id": 1237, "name": "Identifier", - "src": "8817:4:4" + "src": "9242:4:4" }, { "attributes": { @@ -12348,13 +12818,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1110, + "referencedDeclaration": 1153, "type": "string memory", "value": "location" }, - "id": 1195, + "id": 1238, "name": "Identifier", - "src": "8835:8:4" + "src": "9260:8:4" }, { "attributes": { @@ -12362,13 +12832,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1112, + "referencedDeclaration": 1155, "type": "string memory", "value": "zip" }, - "id": 1196, + "id": 1239, "name": "Identifier", - "src": "8857:3:4" + "src": "9282:3:4" }, { "attributes": { @@ -12376,13 +12846,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1114, + "referencedDeclaration": 1157, "type": "uint256", "value": "priceWei" }, - "id": 1197, + "id": 1240, "name": "Identifier", - "src": "8874:8:4" + "src": "9299:8:4" }, { "attributes": { @@ -12390,23 +12860,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1116, + "referencedDeclaration": 1159, "type": "bytes32", "value": "confirmationCodeSha3" }, - "id": 1198, + "id": 1241, "name": "Identifier", - "src": "8896:20:4" + "src": "9321:20:4" } ], - "id": 1199, + "id": 1242, "name": "FunctionCall", - "src": "8712:214:4" + "src": "9137:214:4" } ], - "id": 1200, + "id": 1243, "name": "VariableDeclarationStatement", - "src": "8697:229:4" + "src": "9122:229:4" }, { "children": [ @@ -12436,13 +12906,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1201, + "id": 1244, "name": "Identifier", - "src": "8936:7:4" + "src": "9361:7:4" }, { "attributes": { @@ -12482,13 +12952,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 517, + "referencedDeclaration": 538, "type": "function (bytes32,uint8,bytes32,bytes32) view returns (bool)", "value": "signerIsValid" }, - "id": 1202, + "id": 1245, "name": "Identifier", - "src": "8944:13:4" + "src": "9369:13:4" }, { "attributes": { @@ -12496,13 +12966,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1187, + "referencedDeclaration": 1230, "type": "bytes32", "value": "data" }, - "id": 1203, + "id": 1246, "name": "Identifier", - "src": "8958:4:4" + "src": "9383:4:4" }, { "attributes": { @@ -12510,13 +12980,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1118, + "referencedDeclaration": 1161, "type": "uint8", "value": "sigV" }, - "id": 1204, + "id": 1247, "name": "Identifier", - "src": "8964:4:4" + "src": "9389:4:4" }, { "attributes": { @@ -12524,13 +12994,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1120, + "referencedDeclaration": 1163, "type": "bytes32", "value": "sigR" }, - "id": 1205, + "id": 1248, "name": "Identifier", - "src": "8970:4:4" + "src": "9395:4:4" }, { "attributes": { @@ -12538,28 +13008,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1122, + "referencedDeclaration": 1165, "type": "bytes32", "value": "sigS" }, - "id": 1206, + "id": 1249, "name": "Identifier", - "src": "8976:4:4" + "src": "9401:4:4" } ], - "id": 1207, + "id": 1250, "name": "FunctionCall", - "src": "8944:37:4" + "src": "9369:37:4" } ], - "id": 1208, + "id": 1251, "name": "FunctionCall", - "src": "8936:46:4" + "src": "9361:46:4" } ], - "id": 1209, + "id": 1252, "name": "ExpressionStatement", - "src": "8936:46:4" + "src": "9361:46:4" }, { "children": [ @@ -12589,13 +13059,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 614, + "referencedDeclaration": 635, "type": "function (address) view returns (bool)", "value": "userExists" }, - "id": 1210, + "id": 1253, "name": "Identifier", - "src": "8997:10:4" + "src": "9422:10:4" }, { "attributes": { @@ -12615,23 +13085,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1211, + "id": 1254, "name": "Identifier", - "src": "9008:3:4" + "src": "9433:3:4" } ], - "id": 1212, + "id": 1255, "name": "MemberAccess", - "src": "9008:10:4" + "src": "9433:10:4" } ], - "id": 1213, + "id": 1256, "name": "FunctionCall", - "src": "8997:22:4" + "src": "9422:22:4" }, { "children": [ @@ -12647,7 +13117,7 @@ "attributes": { "constant": false, "name": "found", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -12660,19 +13130,19 @@ "name": "bool", "type": "bool" }, - "id": 1214, + "id": 1257, "name": "ElementaryTypeName", - "src": "9094:4:4" + "src": "9519:4:4" } ], - "id": 1215, + "id": 1258, "name": "VariableDeclaration", - "src": "9094:10:4" + "src": "9519:10:4" } ], - "id": 1216, + "id": 1259, "name": "VariableDeclarationStatement", - "src": "9094:10:4" + "src": "9519:10:4" }, { "children": [ @@ -12704,18 +13174,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1215, + "referencedDeclaration": 1258, "type": "bool", "value": "found" }, - "id": 1217, + "id": 1260, "name": "Identifier", - "src": "9119:5:4" + "src": "9544:5:4" } ], - "id": 1218, + "id": 1261, "name": "TupleExpression", - "src": "9118:11:4" + "src": "9543:11:4" }, { "attributes": { @@ -12763,13 +13233,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 857, + "referencedDeclaration": 843, "type": "function (address,string memory,string memory,string memory,string memory,string memory) view returns (bool,uint256,bool)", "value": "userAddressByAddress" }, - "id": 1219, + "id": 1262, "name": "Identifier", - "src": "9132:20:4" + "src": "9557:20:4" }, { "attributes": { @@ -12789,18 +13259,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1220, + "id": 1263, "name": "Identifier", - "src": "9153:3:4" + "src": "9578:3:4" } ], - "id": 1221, + "id": 1264, "name": "MemberAccess", - "src": "9153:10:4" + "src": "9578:10:4" }, { "attributes": { @@ -12808,13 +13278,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1104, + "referencedDeclaration": 1147, "type": "string memory", "value": "country" }, - "id": 1222, + "id": 1265, "name": "Identifier", - "src": "9165:7:4" + "src": "9590:7:4" }, { "attributes": { @@ -12822,13 +13292,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1106, + "referencedDeclaration": 1149, "type": "string memory", "value": "state" }, - "id": 1223, + "id": 1266, "name": "Identifier", - "src": "9174:5:4" + "src": "9599:5:4" }, { "attributes": { @@ -12836,13 +13306,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1108, + "referencedDeclaration": 1151, "type": "string memory", "value": "city" }, - "id": 1224, + "id": 1267, "name": "Identifier", - "src": "9181:4:4" + "src": "9606:4:4" }, { "attributes": { @@ -12850,13 +13320,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1110, + "referencedDeclaration": 1153, "type": "string memory", "value": "location" }, - "id": 1225, + "id": 1268, "name": "Identifier", - "src": "9187:8:4" + "src": "9612:8:4" }, { "attributes": { @@ -12864,28 +13334,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1112, + "referencedDeclaration": 1155, "type": "string memory", "value": "zip" }, - "id": 1226, + "id": 1269, "name": "Identifier", - "src": "9197:3:4" + "src": "9622:3:4" } ], - "id": 1227, + "id": 1270, "name": "FunctionCall", - "src": "9132:69:4" + "src": "9557:69:4" } ], - "id": 1228, + "id": 1271, "name": "Assignment", - "src": "9118:83:4" + "src": "9543:83:4" } ], - "id": 1229, + "id": 1272, "name": "ExpressionStatement", - "src": "9118:83:4" + "src": "9543:83:4" }, { "children": [ @@ -12915,13 +13385,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1230, + "id": 1273, "name": "Identifier", - "src": "9216:7:4" + "src": "9641:7:4" }, { "attributes": { @@ -12941,33 +13411,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1215, + "referencedDeclaration": 1258, "type": "bool", "value": "found" }, - "id": 1231, + "id": 1274, "name": "Identifier", - "src": "9225:5:4" + "src": "9650:5:4" } ], - "id": 1232, + "id": 1275, "name": "UnaryOperation", - "src": "9224:6:4" + "src": "9649:6:4" } ], - "id": 1233, + "id": 1276, "name": "FunctionCall", - "src": "9216:15:4" + "src": "9641:15:4" } ], - "id": 1234, + "id": 1277, "name": "ExpressionStatement", - "src": "9216:15:4" + "src": "9641:15:4" } ], - "id": 1235, + "id": 1278, "name": "Block", - "src": "9021:221:4" + "src": "9446:221:4" }, { "children": [ @@ -12992,7 +13462,7 @@ "isPure": false, "lValueRequested": true, "member_name": "creationBlock", - "referencedDeclaration": 419, + "referencedDeclaration": 432, "type": "uint256" }, "children": [ @@ -13012,13 +13482,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1236, + "id": 1279, "name": "Identifier", - "src": "9286:5:4" + "src": "9711:5:4" }, { "attributes": { @@ -13038,28 +13508,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1237, + "id": 1280, "name": "Identifier", - "src": "9292:3:4" + "src": "9717:3:4" } ], - "id": 1238, + "id": 1281, "name": "MemberAccess", - "src": "9292:10:4" + "src": "9717:10:4" } ], - "id": 1239, + "id": 1282, "name": "IndexAccess", - "src": "9286:17:4" + "src": "9711:17:4" } ], - "id": 1240, + "id": 1283, "name": "MemberAccess", - "src": "9286:31:4" + "src": "9711:31:4" }, { "attributes": { @@ -13079,28 +13549,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1587, + "referencedDeclaration": 1812, "type": "block", "value": "block" }, - "id": 1241, + "id": 1284, "name": "Identifier", - "src": "9320:5:4" + "src": "9745:5:4" } ], - "id": 1242, + "id": 1285, "name": "MemberAccess", - "src": "9320:12:4" + "src": "9745:12:4" } ], - "id": 1243, + "id": 1286, "name": "Assignment", - "src": "9286:46:4" + "src": "9711:46:4" } ], - "id": 1244, + "id": 1287, "name": "ExpressionStatement", - "src": "9286:46:4" + "src": "9711:46:4" }, { "children": [ @@ -13121,13 +13591,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 429, + "referencedDeclaration": 442, "type": "uint64", "value": "totalUsers" }, - "id": 1245, + "id": 1288, "name": "Identifier", - "src": "9347:10:4" + "src": "9772:10:4" }, { "attributes": { @@ -13142,29 +13612,29 @@ "type": "int_const 1", "value": "1" }, - "id": 1246, + "id": 1289, "name": "Literal", - "src": "9361:1:4" + "src": "9786:1:4" } ], - "id": 1247, + "id": 1290, "name": "Assignment", - "src": "9347:15:4" + "src": "9772:15:4" } ], - "id": 1248, + "id": 1291, "name": "ExpressionStatement", - "src": "9347:15:4" + "src": "9772:15:4" } ], - "id": 1249, + "id": 1292, "name": "Block", - "src": "9248:125:4" + "src": "9673:125:4" } ], - "id": 1250, + "id": 1293, "name": "IfStatement", - "src": "8993:380:4" + "src": "9418:380:4" }, { "attributes": { @@ -13178,7 +13648,7 @@ "attributes": { "constant": false, "name": "pa", - "scope": 1336, + "scope": 1379, "stateVariable": false, "storageLocation": "memory", "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", @@ -13190,22 +13660,22 @@ "attributes": { "contractScope": null, "name": "PhysicalAddress", - "referencedDeclaration": 396, + "referencedDeclaration": 409, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage pointer" }, - "id": 1251, + "id": 1294, "name": "UserDefinedTypeName", - "src": "9383:15:4" + "src": "9808:15:4" } ], - "id": 1252, + "id": 1295, "name": "VariableDeclaration", - "src": "9383:25:4" + "src": "9808:25:4" } ], - "id": 1253, + "id": 1296, "name": "VariableDeclarationStatement", - "src": "9383:25:4" + "src": "9808:25:4" }, { "children": [ @@ -13228,7 +13698,7 @@ "isPure": false, "lValueRequested": true, "member_name": "name", - "referencedDeclaration": 379, + "referencedDeclaration": 392, "type": "string memory" }, "children": [ @@ -13238,18 +13708,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1254, + "id": 1297, "name": "Identifier", - "src": "9419:2:4" + "src": "9844:2:4" } ], - "id": 1256, + "id": 1299, "name": "MemberAccess", - "src": "9419:7:4" + "src": "9844:7:4" }, { "attributes": { @@ -13257,23 +13727,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1102, + "referencedDeclaration": 1145, "type": "string memory", "value": "name" }, - "id": 1257, + "id": 1300, "name": "Identifier", - "src": "9429:4:4" + "src": "9854:4:4" } ], - "id": 1258, + "id": 1301, "name": "Assignment", - "src": "9419:14:4" + "src": "9844:14:4" } ], - "id": 1259, + "id": 1302, "name": "ExpressionStatement", - "src": "9419:14:4" + "src": "9844:14:4" }, { "children": [ @@ -13296,7 +13766,7 @@ "isPure": false, "lValueRequested": true, "member_name": "country", - "referencedDeclaration": 381, + "referencedDeclaration": 394, "type": "string memory" }, "children": [ @@ -13306,18 +13776,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1260, + "id": 1303, "name": "Identifier", - "src": "9443:2:4" + "src": "9868:2:4" } ], - "id": 1262, + "id": 1305, "name": "MemberAccess", - "src": "9443:10:4" + "src": "9868:10:4" }, { "attributes": { @@ -13325,23 +13795,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1104, + "referencedDeclaration": 1147, "type": "string memory", "value": "country" }, - "id": 1263, + "id": 1306, "name": "Identifier", - "src": "9456:7:4" + "src": "9881:7:4" } ], - "id": 1264, + "id": 1307, "name": "Assignment", - "src": "9443:20:4" + "src": "9868:20:4" } ], - "id": 1265, + "id": 1308, "name": "ExpressionStatement", - "src": "9443:20:4" + "src": "9868:20:4" }, { "children": [ @@ -13364,7 +13834,7 @@ "isPure": false, "lValueRequested": true, "member_name": "state", - "referencedDeclaration": 383, + "referencedDeclaration": 396, "type": "string memory" }, "children": [ @@ -13374,18 +13844,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1266, + "id": 1309, "name": "Identifier", - "src": "9473:2:4" + "src": "9898:2:4" } ], - "id": 1268, + "id": 1311, "name": "MemberAccess", - "src": "9473:8:4" + "src": "9898:8:4" }, { "attributes": { @@ -13393,23 +13863,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1106, + "referencedDeclaration": 1149, "type": "string memory", "value": "state" }, - "id": 1269, + "id": 1312, "name": "Identifier", - "src": "9484:5:4" + "src": "9909:5:4" } ], - "id": 1270, + "id": 1313, "name": "Assignment", - "src": "9473:16:4" + "src": "9898:16:4" } ], - "id": 1271, + "id": 1314, "name": "ExpressionStatement", - "src": "9473:16:4" + "src": "9898:16:4" }, { "children": [ @@ -13432,7 +13902,7 @@ "isPure": false, "lValueRequested": true, "member_name": "city", - "referencedDeclaration": 385, + "referencedDeclaration": 398, "type": "string memory" }, "children": [ @@ -13442,18 +13912,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1272, + "id": 1315, "name": "Identifier", - "src": "9499:2:4" + "src": "9924:2:4" } ], - "id": 1274, + "id": 1317, "name": "MemberAccess", - "src": "9499:7:4" + "src": "9924:7:4" }, { "attributes": { @@ -13461,23 +13931,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1108, + "referencedDeclaration": 1151, "type": "string memory", "value": "city" }, - "id": 1275, + "id": 1318, "name": "Identifier", - "src": "9509:4:4" + "src": "9934:4:4" } ], - "id": 1276, + "id": 1319, "name": "Assignment", - "src": "9499:14:4" + "src": "9924:14:4" } ], - "id": 1277, + "id": 1320, "name": "ExpressionStatement", - "src": "9499:14:4" + "src": "9924:14:4" }, { "children": [ @@ -13500,7 +13970,7 @@ "isPure": false, "lValueRequested": true, "member_name": "location", - "referencedDeclaration": 387, + "referencedDeclaration": 400, "type": "string memory" }, "children": [ @@ -13510,18 +13980,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1278, + "id": 1321, "name": "Identifier", - "src": "9523:2:4" + "src": "9948:2:4" } ], - "id": 1280, + "id": 1323, "name": "MemberAccess", - "src": "9523:11:4" + "src": "9948:11:4" }, { "attributes": { @@ -13529,23 +13999,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1110, + "referencedDeclaration": 1153, "type": "string memory", "value": "location" }, - "id": 1281, + "id": 1324, "name": "Identifier", - "src": "9537:8:4" + "src": "9962:8:4" } ], - "id": 1282, + "id": 1325, "name": "Assignment", - "src": "9523:22:4" + "src": "9948:22:4" } ], - "id": 1283, + "id": 1326, "name": "ExpressionStatement", - "src": "9523:22:4" + "src": "9948:22:4" }, { "children": [ @@ -13568,7 +14038,7 @@ "isPure": false, "lValueRequested": true, "member_name": "zip", - "referencedDeclaration": 389, + "referencedDeclaration": 402, "type": "string memory" }, "children": [ @@ -13578,18 +14048,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1284, + "id": 1327, "name": "Identifier", - "src": "9555:2:4" + "src": "9980:2:4" } ], - "id": 1286, + "id": 1329, "name": "MemberAccess", - "src": "9555:6:4" + "src": "9980:6:4" }, { "attributes": { @@ -13597,23 +14067,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1112, + "referencedDeclaration": 1155, "type": "string memory", "value": "zip" }, - "id": 1287, + "id": 1330, "name": "Identifier", - "src": "9564:3:4" + "src": "9989:3:4" } ], - "id": 1288, + "id": 1331, "name": "Assignment", - "src": "9555:12:4" + "src": "9980:12:4" } ], - "id": 1289, + "id": 1332, "name": "ExpressionStatement", - "src": "9555:12:4" + "src": "9980:12:4" }, { "children": [ @@ -13636,7 +14106,7 @@ "isPure": false, "lValueRequested": true, "member_name": "creationBlock", - "referencedDeclaration": 391, + "referencedDeclaration": 404, "type": "uint256" }, "children": [ @@ -13646,18 +14116,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1290, + "id": 1333, "name": "Identifier", - "src": "9577:2:4" + "src": "10002:2:4" } ], - "id": 1292, + "id": 1335, "name": "MemberAccess", - "src": "9577:16:4" + "src": "10002:16:4" }, { "attributes": { @@ -13677,28 +14147,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1587, + "referencedDeclaration": 1812, "type": "block", "value": "block" }, - "id": 1293, + "id": 1336, "name": "Identifier", - "src": "9596:5:4" + "src": "10021:5:4" } ], - "id": 1294, + "id": 1337, "name": "MemberAccess", - "src": "9596:12:4" + "src": "10021:12:4" } ], - "id": 1295, + "id": 1338, "name": "Assignment", - "src": "9577:31:4" + "src": "10002:31:4" } ], - "id": 1296, + "id": 1339, "name": "ExpressionStatement", - "src": "9577:31:4" + "src": "10002:31:4" }, { "children": [ @@ -13721,7 +14191,7 @@ "isPure": false, "lValueRequested": true, "member_name": "confirmationCodeSha3", - "referencedDeclaration": 395, + "referencedDeclaration": 408, "type": "bytes32" }, "children": [ @@ -13731,18 +14201,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1297, + "id": 1340, "name": "Identifier", - "src": "9618:2:4" + "src": "10043:2:4" } ], - "id": 1299, + "id": 1342, "name": "MemberAccess", - "src": "9618:23:4" + "src": "10043:23:4" }, { "attributes": { @@ -13750,23 +14220,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1116, + "referencedDeclaration": 1159, "type": "bytes32", "value": "confirmationCodeSha3" }, - "id": 1300, + "id": 1343, "name": "Identifier", - "src": "9644:20:4" + "src": "10069:20:4" } ], - "id": 1301, + "id": 1344, "name": "Assignment", - "src": "9618:46:4" + "src": "10043:46:4" } ], - "id": 1302, + "id": 1345, "name": "ExpressionStatement", - "src": "9618:46:4" + "src": "10043:46:4" }, { "children": [ @@ -13789,7 +14259,7 @@ "isPure": false, "lValueRequested": true, "member_name": "keccakIdentifier", - "referencedDeclaration": 393, + "referencedDeclaration": 406, "type": "bytes32" }, "children": [ @@ -13799,18 +14269,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1303, + "id": 1346, "name": "Identifier", - "src": "9674:2:4" + "src": "10099:2:4" } ], - "id": 1305, + "id": 1348, "name": "MemberAccess", - "src": "9674:19:4" + "src": "10099:19:4" }, { "attributes": { @@ -13854,13 +14324,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1589, + "referencedDeclaration": 1814, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1306, + "id": 1349, "name": "Identifier", - "src": "9696:9:4" + "src": "10121:9:4" }, { "attributes": { @@ -13868,13 +14338,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1104, + "referencedDeclaration": 1147, "type": "string memory", "value": "country" }, - "id": 1307, + "id": 1350, "name": "Identifier", - "src": "9706:7:4" + "src": "10131:7:4" }, { "attributes": { @@ -13882,13 +14352,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1106, + "referencedDeclaration": 1149, "type": "string memory", "value": "state" }, - "id": 1308, + "id": 1351, "name": "Identifier", - "src": "9715:5:4" + "src": "10140:5:4" }, { "attributes": { @@ -13896,13 +14366,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1108, + "referencedDeclaration": 1151, "type": "string memory", "value": "city" }, - "id": 1309, + "id": 1352, "name": "Identifier", - "src": "9722:4:4" + "src": "10147:4:4" }, { "attributes": { @@ -13910,13 +14380,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1110, + "referencedDeclaration": 1153, "type": "string memory", "value": "location" }, - "id": 1310, + "id": 1353, "name": "Identifier", - "src": "9728:8:4" + "src": "10153:8:4" }, { "attributes": { @@ -13924,28 +14394,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1112, + "referencedDeclaration": 1155, "type": "string memory", "value": "zip" }, - "id": 1311, + "id": 1354, "name": "Identifier", - "src": "9738:3:4" + "src": "10163:3:4" } ], - "id": 1312, + "id": 1355, "name": "FunctionCall", - "src": "9696:46:4" + "src": "10121:46:4" } ], - "id": 1313, + "id": 1356, "name": "Assignment", - "src": "9674:68:4" + "src": "10099:68:4" } ], - "id": 1314, + "id": 1357, "name": "ExpressionStatement", - "src": "9674:68:4" + "src": "10099:68:4" }, { "children": [ @@ -13968,7 +14438,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_PhysicalAddress_$396_memory_ptr", + "typeIdentifier": "t_struct$_PhysicalAddress_$409_memory_ptr", "typeString": "struct ProofOfPhysicalAddress.PhysicalAddress memory" } ], @@ -13989,7 +14459,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -14009,13 +14479,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1315, + "id": 1358, "name": "Identifier", - "src": "9752:5:4" + "src": "10177:5:4" }, { "attributes": { @@ -14035,33 +14505,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1316, + "id": 1359, "name": "Identifier", - "src": "9758:3:4" + "src": "10183:3:4" } ], - "id": 1317, + "id": 1360, "name": "MemberAccess", - "src": "9758:10:4" + "src": "10183:10:4" } ], - "id": 1318, + "id": 1361, "name": "IndexAccess", - "src": "9752:17:4" + "src": "10177:17:4" } ], - "id": 1319, + "id": 1362, "name": "MemberAccess", - "src": "9752:35:4" + "src": "10177:35:4" } ], - "id": 1320, + "id": 1363, "name": "MemberAccess", - "src": "9752:40:4" + "src": "10177:40:4" }, { "attributes": { @@ -14069,23 +14539,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1321, + "id": 1364, "name": "Identifier", - "src": "9793:2:4" + "src": "10218:2:4" } ], - "id": 1322, + "id": 1365, "name": "FunctionCall", - "src": "9752:44:4" + "src": "10177:44:4" } ], - "id": 1323, + "id": 1366, "name": "ExpressionStatement", - "src": "9752:44:4" + "src": "10177:44:4" }, { "children": [ @@ -14106,13 +14576,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 431, + "referencedDeclaration": 444, "type": "uint64", "value": "totalAddresses" }, - "id": 1324, + "id": 1367, "name": "Identifier", - "src": "9807:14:4" + "src": "10232:14:4" }, { "attributes": { @@ -14127,19 +14597,19 @@ "type": "int_const 1", "value": "1" }, - "id": 1325, + "id": 1368, "name": "Literal", - "src": "9825:1:4" + "src": "10250:1:4" } ], - "id": 1326, + "id": 1369, "name": "Assignment", - "src": "9807:19:4" + "src": "10232:19:4" } ], - "id": 1327, + "id": 1370, "name": "ExpressionStatement", - "src": "9807:19:4" + "src": "10232:19:4" }, { "children": [ @@ -14173,13 +14643,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 447, + "referencedDeclaration": 460, "type": "function (address,bytes32)", "value": "LogAddressRegistered" }, - "id": 1328, + "id": 1371, "name": "Identifier", - "src": "9837:20:4" + "src": "10262:20:4" }, { "attributes": { @@ -14199,18 +14669,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1329, + "id": 1372, "name": "Identifier", - "src": "9858:3:4" + "src": "10283:3:4" } ], - "id": 1330, + "id": 1373, "name": "MemberAccess", - "src": "9858:10:4" + "src": "10283:10:4" }, { "attributes": { @@ -14220,7 +14690,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 393, + "referencedDeclaration": 406, "type": "bytes32" }, "children": [ @@ -14230,38 +14700,38 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1252, + "referencedDeclaration": 1295, "type": "struct ProofOfPhysicalAddress.PhysicalAddress memory", "value": "pa" }, - "id": 1331, + "id": 1374, "name": "Identifier", - "src": "9870:2:4" + "src": "10295:2:4" } ], - "id": 1332, + "id": 1375, "name": "MemberAccess", - "src": "9870:19:4" + "src": "10295:19:4" } ], - "id": 1333, + "id": 1376, "name": "FunctionCall", - "src": "9837:53:4" + "src": "10262:53:4" } ], - "id": 1334, + "id": 1377, "name": "ExpressionStatement", - "src": "9837:53:4" + "src": "10262:53:4" } ], - "id": 1335, + "id": 1378, "name": "Block", - "src": "8393:1504:4" + "src": "8818:1504:4" } ], - "id": 1336, + "id": 1379, "name": "FunctionDefinition", - "src": "8139:1758:4" + "src": "8564:1758:4" }, { "attributes": { @@ -14270,7 +14740,7 @@ "isConstructor": false, "name": "unregisterAddress", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -14282,7 +14752,7 @@ "attributes": { "constant": false, "name": "country", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -14295,20 +14765,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1337, + "id": 1380, "name": "ElementaryTypeName", - "src": "9930:6:4" + "src": "10355:6:4" } ], - "id": 1338, + "id": 1381, "name": "VariableDeclaration", - "src": "9930:14:4" + "src": "10355:14:4" }, { "attributes": { "constant": false, "name": "state", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -14321,20 +14791,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1339, + "id": 1382, "name": "ElementaryTypeName", - "src": "9946:6:4" + "src": "10371:6:4" } ], - "id": 1340, + "id": 1383, "name": "VariableDeclaration", - "src": "9946:12:4" + "src": "10371:12:4" }, { "attributes": { "constant": false, "name": "city", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -14347,20 +14817,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1341, + "id": 1384, "name": "ElementaryTypeName", - "src": "9960:6:4" + "src": "10385:6:4" } ], - "id": 1342, + "id": 1385, "name": "VariableDeclaration", - "src": "9960:11:4" + "src": "10385:11:4" }, { "attributes": { "constant": false, "name": "location", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -14373,20 +14843,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1343, + "id": 1386, "name": "ElementaryTypeName", - "src": "9973:6:4" + "src": "10398:6:4" } ], - "id": 1344, + "id": 1387, "name": "VariableDeclaration", - "src": "9973:15:4" + "src": "10398:15:4" }, { "attributes": { "constant": false, "name": "zip", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -14399,19 +14869,19 @@ "name": "string", "type": "string storage pointer" }, - "id": 1345, + "id": 1388, "name": "ElementaryTypeName", - "src": "9990:6:4" + "src": "10415:6:4" } ], - "id": 1346, + "id": 1389, "name": "VariableDeclaration", - "src": "9990:10:4" + "src": "10415:10:4" } ], - "id": 1347, + "id": 1390, "name": "ParameterList", - "src": "9929:72:4" + "src": "10354:72:4" }, { "attributes": { @@ -14420,9 +14890,9 @@ ] }, "children": [], - "id": 1352, + "id": 1395, "name": "ParameterList", - "src": "10049:0:4" + "src": "10474:0:4" }, { "children": [ @@ -14432,13 +14902,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 1348, + "id": 1391, "name": "Identifier", - "src": "10017:15:4" + "src": "10442:15:4" }, { "attributes": { @@ -14458,23 +14928,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1349, + "id": 1392, "name": "Identifier", - "src": "10033:3:4" + "src": "10458:3:4" } ], - "id": 1350, + "id": 1393, "name": "MemberAccess", - "src": "10033:10:4" + "src": "10458:10:4" } ], - "id": 1351, + "id": 1394, "name": "ModifierInvocation", - "src": "10017:27:4" + "src": "10442:27:4" }, { "children": [ @@ -14490,7 +14960,7 @@ "attributes": { "constant": false, "name": "found", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -14503,19 +14973,19 @@ "name": "bool", "type": "bool" }, - "id": 1353, + "id": 1396, "name": "ElementaryTypeName", - "src": "10059:4:4" + "src": "10484:4:4" } ], - "id": 1354, + "id": 1397, "name": "VariableDeclaration", - "src": "10059:10:4" + "src": "10484:10:4" } ], - "id": 1355, + "id": 1398, "name": "VariableDeclarationStatement", - "src": "10059:10:4" + "src": "10484:10:4" }, { "attributes": { @@ -14529,7 +14999,7 @@ "attributes": { "constant": false, "name": "index", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -14542,19 +15012,19 @@ "name": "uint256", "type": "uint256" }, - "id": 1356, + "id": 1399, "name": "ElementaryTypeName", - "src": "10079:7:4" + "src": "10504:7:4" } ], - "id": 1357, + "id": 1400, "name": "VariableDeclaration", - "src": "10079:13:4" + "src": "10504:13:4" } ], - "id": 1358, + "id": 1401, "name": "VariableDeclarationStatement", - "src": "10079:13:4" + "src": "10504:13:4" }, { "children": [ @@ -14586,13 +15056,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1354, + "referencedDeclaration": 1397, "type": "bool", "value": "found" }, - "id": 1359, + "id": 1402, "name": "Identifier", - "src": "10103:5:4" + "src": "10528:5:4" }, { "attributes": { @@ -14600,18 +15070,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1357, + "referencedDeclaration": 1400, "type": "uint256", "value": "index" }, - "id": 1360, + "id": 1403, "name": "Identifier", - "src": "10110:5:4" + "src": "10535:5:4" } ], - "id": 1361, + "id": 1404, "name": "TupleExpression", - "src": "10102:16:4" + "src": "10527:16:4" }, { "attributes": { @@ -14659,13 +15129,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 857, + "referencedDeclaration": 843, "type": "function (address,string memory,string memory,string memory,string memory,string memory) view returns (bool,uint256,bool)", "value": "userAddressByAddress" }, - "id": 1362, + "id": 1405, "name": "Identifier", - "src": "10121:20:4" + "src": "10546:20:4" }, { "attributes": { @@ -14685,18 +15155,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1363, + "id": 1406, "name": "Identifier", - "src": "10142:3:4" + "src": "10567:3:4" } ], - "id": 1364, + "id": 1407, "name": "MemberAccess", - "src": "10142:10:4" + "src": "10567:10:4" }, { "attributes": { @@ -14704,13 +15174,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1338, + "referencedDeclaration": 1381, "type": "string memory", "value": "country" }, - "id": 1365, + "id": 1408, "name": "Identifier", - "src": "10154:7:4" + "src": "10579:7:4" }, { "attributes": { @@ -14718,13 +15188,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1340, + "referencedDeclaration": 1383, "type": "string memory", "value": "state" }, - "id": 1366, + "id": 1409, "name": "Identifier", - "src": "10163:5:4" + "src": "10588:5:4" }, { "attributes": { @@ -14732,13 +15202,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1342, + "referencedDeclaration": 1385, "type": "string memory", "value": "city" }, - "id": 1367, + "id": 1410, "name": "Identifier", - "src": "10170:4:4" + "src": "10595:4:4" }, { "attributes": { @@ -14746,13 +15216,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1344, + "referencedDeclaration": 1387, "type": "string memory", "value": "location" }, - "id": 1368, + "id": 1411, "name": "Identifier", - "src": "10176:8:4" + "src": "10601:8:4" }, { "attributes": { @@ -14760,28 +15230,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1346, + "referencedDeclaration": 1389, "type": "string memory", "value": "zip" }, - "id": 1369, + "id": 1412, "name": "Identifier", - "src": "10186:3:4" + "src": "10611:3:4" } ], - "id": 1370, + "id": 1413, "name": "FunctionCall", - "src": "10121:69:4" + "src": "10546:69:4" } ], - "id": 1371, + "id": 1414, "name": "Assignment", - "src": "10102:88:4" + "src": "10527:88:4" } ], - "id": 1372, + "id": 1415, "name": "ExpressionStatement", - "src": "10102:88:4" + "src": "10527:88:4" }, { "children": [ @@ -14811,13 +15281,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1373, + "id": 1416, "name": "Identifier", - "src": "10200:7:4" + "src": "10625:7:4" }, { "attributes": { @@ -14825,28 +15295,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1354, + "referencedDeclaration": 1397, "type": "bool", "value": "found" }, - "id": 1374, + "id": 1417, "name": "Identifier", - "src": "10208:5:4" + "src": "10633:5:4" } ], - "id": 1375, + "id": 1418, "name": "FunctionCall", - "src": "10200:14:4" + "src": "10625:14:4" } ], - "id": 1376, + "id": 1419, "name": "ExpressionStatement", - "src": "10200:14:4" + "src": "10625:14:4" }, { "attributes": { "assignments": [ - 1378 + 1421 ] }, "children": [ @@ -14854,7 +15324,7 @@ "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -14867,14 +15337,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1377, + "id": 1420, "name": "ElementaryTypeName", - "src": "10225:7:4" + "src": "10650:7:4" } ], - "id": 1378, + "id": 1421, "name": "VariableDeclaration", - "src": "10225:24:4" + "src": "10650:24:4" }, { "attributes": { @@ -14884,7 +15354,7 @@ "isPure": false, "lValueRequested": false, "member_name": "keccakIdentifier", - "referencedDeclaration": 393, + "referencedDeclaration": 406, "type": "bytes32" }, "children": [ @@ -14906,7 +15376,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -14926,13 +15396,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1379, + "id": 1422, "name": "Identifier", - "src": "10252:5:4" + "src": "10677:5:4" }, { "attributes": { @@ -14952,28 +15422,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1380, + "id": 1423, "name": "Identifier", - "src": "10258:3:4" + "src": "10683:3:4" } ], - "id": 1381, + "id": 1424, "name": "MemberAccess", - "src": "10258:10:4" + "src": "10683:10:4" } ], - "id": 1382, + "id": 1425, "name": "IndexAccess", - "src": "10252:17:4" + "src": "10677:17:4" } ], - "id": 1383, + "id": 1426, "name": "MemberAccess", - "src": "10252:35:4" + "src": "10677:35:4" }, { "attributes": { @@ -14981,28 +15451,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1357, + "referencedDeclaration": 1400, "type": "uint256", "value": "index" }, - "id": 1384, + "id": 1427, "name": "Identifier", - "src": "10288:5:4" + "src": "10713:5:4" } ], - "id": 1385, + "id": 1428, "name": "IndexAccess", - "src": "10252:42:4" + "src": "10677:42:4" } ], - "id": 1386, + "id": 1429, "name": "MemberAccess", - "src": "10252:59:4" + "src": "10677:59:4" } ], - "id": 1387, + "id": 1430, "name": "VariableDeclarationStatement", - "src": "10225:86:4" + "src": "10650:86:4" }, { "children": [ @@ -15042,7 +15512,7 @@ "isPure": false, "lValueRequested": false, "member_name": "removeClaim", - "referencedDeclaration": 181, + "referencedDeclaration": 250, "type": "function (address,address,bytes32) external" }, "children": [ @@ -15052,18 +15522,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 377, + "referencedDeclaration": 390, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 1388, + "id": 1431, "name": "Identifier", - "src": "10321:8:4" + "src": "10746:8:4" } ], - "id": 1390, + "id": 1433, "name": "MemberAccess", - "src": "10321:20:4" + "src": "10746:20:4" }, { "attributes": { @@ -15084,7 +15554,7 @@ "attributes": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1583", + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1678", "typeString": "contract ProofOfPhysicalAddress" } ], @@ -15095,9 +15565,9 @@ "type": "type(address)", "value": "address" }, - "id": 1391, + "id": 1434, "name": "ElementaryTypeNameExpression", - "src": "10355:7:4" + "src": "10780:7:4" }, { "attributes": { @@ -15105,18 +15575,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1614, + "referencedDeclaration": 1839, "type": "contract ProofOfPhysicalAddress", "value": "this" }, - "id": 1392, + "id": 1435, "name": "Identifier", - "src": "10363:4:4" + "src": "10788:4:4" } ], - "id": 1393, + "id": 1436, "name": "FunctionCall", - "src": "10355:13:4" + "src": "10780:13:4" }, { "attributes": { @@ -15136,18 +15606,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1394, + "id": 1437, "name": "Identifier", - "src": "10382:3:4" + "src": "10807:3:4" } ], - "id": 1395, + "id": 1438, "name": "MemberAccess", - "src": "10382:10:4" + "src": "10807:10:4" }, { "attributes": { @@ -15155,28 +15625,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1378, + "referencedDeclaration": 1421, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 1396, + "id": 1439, "name": "Identifier", - "src": "10406:16:4" + "src": "10831:16:4" } ], - "id": 1397, + "id": 1440, "name": "FunctionCall", - "src": "10321:111:4" + "src": "10746:111:4" } ], - "id": 1398, + "id": 1441, "name": "ExpressionStatement", - "src": "10321:111:4" + "src": "10746:111:4" }, { "attributes": { "assignments": [ - 1400 + 1443 ] }, "children": [ @@ -15184,7 +15654,7 @@ "attributes": { "constant": false, "name": "length", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -15197,14 +15667,14 @@ "name": "uint256", "type": "uint256" }, - "id": 1399, + "id": 1442, "name": "ElementaryTypeName", - "src": "10488:7:4" + "src": "10913:7:4" } ], - "id": 1400, + "id": 1443, "name": "VariableDeclaration", - "src": "10488:14:4" + "src": "10913:14:4" }, { "attributes": { @@ -15226,7 +15696,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15246,13 +15716,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1401, + "id": 1444, "name": "Identifier", - "src": "10505:5:4" + "src": "10930:5:4" }, { "attributes": { @@ -15272,45 +15742,45 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1402, + "id": 1445, "name": "Identifier", - "src": "10511:3:4" + "src": "10936:3:4" } ], - "id": 1403, + "id": 1446, "name": "MemberAccess", - "src": "10511:10:4" + "src": "10936:10:4" } ], - "id": 1404, + "id": 1447, "name": "IndexAccess", - "src": "10505:17:4" + "src": "10930:17:4" } ], - "id": 1405, + "id": 1448, "name": "MemberAccess", - "src": "10505:35:4" + "src": "10930:35:4" } ], - "id": 1406, + "id": 1449, "name": "MemberAccess", - "src": "10505:42:4" + "src": "10930:42:4" } ], - "id": 1407, + "id": 1450, "name": "VariableDeclarationStatement", - "src": "10488:59:4" + "src": "10913:59:4" }, { "children": [ { "attributes": { "assignments": [ - 1409 + 1452 ] }, "children": [ @@ -15318,7 +15788,7 @@ "attributes": { "constant": false, "name": "i", - "scope": 1482, + "scope": 1525, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -15331,14 +15801,14 @@ "name": "uint256", "type": "uint256" }, - "id": 1408, + "id": 1451, "name": "ElementaryTypeName", - "src": "10563:7:4" + "src": "10988:7:4" } ], - "id": 1409, + "id": 1452, "name": "VariableDeclaration", - "src": "10563:9:4" + "src": "10988:9:4" }, { "attributes": { @@ -15346,18 +15816,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1357, + "referencedDeclaration": 1400, "type": "uint256", "value": "index" }, - "id": 1410, + "id": 1453, "name": "Identifier", - "src": "10575:5:4" + "src": "11000:5:4" } ], - "id": 1411, + "id": 1454, "name": "VariableDeclarationStatement", - "src": "10563:17:4" + "src": "10988:17:4" }, { "attributes": { @@ -15380,13 +15850,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1409, + "referencedDeclaration": 1452, "type": "uint256", "value": "i" }, - "id": 1412, + "id": 1455, "name": "Identifier", - "src": "10582:1:4" + "src": "11007:1:4" }, { "attributes": { @@ -15409,13 +15879,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1400, + "referencedDeclaration": 1443, "type": "uint256", "value": "length" }, - "id": 1413, + "id": 1456, "name": "Identifier", - "src": "10586:6:4" + "src": "11011:6:4" }, { "attributes": { @@ -15430,19 +15900,19 @@ "type": "int_const 1", "value": "1" }, - "id": 1414, + "id": 1457, "name": "Literal", - "src": "10595:1:4" + "src": "11020:1:4" } ], - "id": 1415, + "id": 1458, "name": "BinaryOperation", - "src": "10586:10:4" + "src": "11011:10:4" } ], - "id": 1416, + "id": 1459, "name": "BinaryOperation", - "src": "10582:14:4" + "src": "11007:14:4" }, { "children": [ @@ -15464,23 +15934,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1409, + "referencedDeclaration": 1452, "type": "uint256", "value": "i" }, - "id": 1417, + "id": 1460, "name": "Identifier", - "src": "10598:1:4" + "src": "11023:1:4" } ], - "id": 1418, + "id": 1461, "name": "UnaryOperation", - "src": "10598:3:4" + "src": "11023:3:4" } ], - "id": 1419, + "id": 1462, "name": "ExpressionStatement", - "src": "10598:3:4" + "src": "11023:3:4" }, { "children": [ @@ -15515,7 +15985,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15535,13 +16005,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1420, + "id": 1463, "name": "Identifier", - "src": "10617:5:4" + "src": "11042:5:4" }, { "attributes": { @@ -15561,28 +16031,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1421, + "id": 1464, "name": "Identifier", - "src": "10623:3:4" + "src": "11048:3:4" } ], - "id": 1422, + "id": 1465, "name": "MemberAccess", - "src": "10623:10:4" + "src": "11048:10:4" } ], - "id": 1423, + "id": 1466, "name": "IndexAccess", - "src": "10617:17:4" + "src": "11042:17:4" } ], - "id": 1424, + "id": 1467, "name": "MemberAccess", - "src": "10617:35:4" + "src": "11042:35:4" }, { "attributes": { @@ -15590,18 +16060,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1409, + "referencedDeclaration": 1452, "type": "uint256", "value": "i" }, - "id": 1425, + "id": 1468, "name": "Identifier", - "src": "10653:1:4" + "src": "11078:1:4" } ], - "id": 1426, + "id": 1469, "name": "IndexAccess", - "src": "10617:38:4" + "src": "11042:38:4" }, { "attributes": { @@ -15621,7 +16091,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15641,13 +16111,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1427, + "id": 1470, "name": "Identifier", - "src": "10658:5:4" + "src": "11083:5:4" }, { "attributes": { @@ -15667,28 +16137,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1428, + "id": 1471, "name": "Identifier", - "src": "10664:3:4" + "src": "11089:3:4" } ], - "id": 1429, + "id": 1472, "name": "MemberAccess", - "src": "10664:10:4" + "src": "11089:10:4" } ], - "id": 1430, + "id": 1473, "name": "IndexAccess", - "src": "10658:17:4" + "src": "11083:17:4" } ], - "id": 1431, + "id": 1474, "name": "MemberAccess", - "src": "10658:35:4" + "src": "11083:35:4" }, { "attributes": { @@ -15711,13 +16181,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1409, + "referencedDeclaration": 1452, "type": "uint256", "value": "i" }, - "id": 1432, + "id": 1475, "name": "Identifier", - "src": "10694:1:4" + "src": "11119:1:4" }, { "attributes": { @@ -15732,39 +16202,39 @@ "type": "int_const 1", "value": "1" }, - "id": 1433, + "id": 1476, "name": "Literal", - "src": "10696:1:4" + "src": "11121:1:4" } ], - "id": 1434, + "id": 1477, "name": "BinaryOperation", - "src": "10694:3:4" + "src": "11119:3:4" } ], - "id": 1435, + "id": 1478, "name": "IndexAccess", - "src": "10658:40:4" + "src": "11083:40:4" } ], - "id": 1436, + "id": 1479, "name": "Assignment", - "src": "10617:81:4" + "src": "11042:81:4" } ], - "id": 1437, + "id": 1480, "name": "ExpressionStatement", - "src": "10617:81:4" + "src": "11042:81:4" } ], - "id": 1438, + "id": 1481, "name": "Block", - "src": "10603:106:4" + "src": "11028:106:4" } ], - "id": 1439, + "id": 1482, "name": "ForStatement", - "src": "10558:151:4" + "src": "10983:151:4" }, { "children": [ @@ -15798,7 +16268,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15818,13 +16288,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1440, + "id": 1483, "name": "Identifier", - "src": "10726:5:4" + "src": "11151:5:4" }, { "attributes": { @@ -15844,28 +16314,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1441, + "id": 1484, "name": "Identifier", - "src": "10732:3:4" + "src": "11157:3:4" } ], - "id": 1442, + "id": 1485, "name": "MemberAccess", - "src": "10732:10:4" + "src": "11157:10:4" } ], - "id": 1443, + "id": 1486, "name": "IndexAccess", - "src": "10726:17:4" + "src": "11151:17:4" } ], - "id": 1444, + "id": 1487, "name": "MemberAccess", - "src": "10726:35:4" + "src": "11151:35:4" }, { "attributes": { @@ -15888,13 +16358,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1400, + "referencedDeclaration": 1443, "type": "uint256", "value": "length" }, - "id": 1445, + "id": 1488, "name": "Identifier", - "src": "10762:6:4" + "src": "11187:6:4" }, { "attributes": { @@ -15909,29 +16379,29 @@ "type": "int_const 1", "value": "1" }, - "id": 1446, + "id": 1489, "name": "Literal", - "src": "10771:1:4" + "src": "11196:1:4" } ], - "id": 1447, + "id": 1490, "name": "BinaryOperation", - "src": "10762:10:4" + "src": "11187:10:4" } ], - "id": 1448, + "id": 1491, "name": "IndexAccess", - "src": "10726:47:4" + "src": "11151:47:4" } ], - "id": 1449, + "id": 1492, "name": "UnaryOperation", - "src": "10719:54:4" + "src": "11144:54:4" } ], - "id": 1450, + "id": 1493, "name": "ExpressionStatement", - "src": "10719:54:4" + "src": "11144:54:4" }, { "children": [ @@ -15967,7 +16437,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -15987,13 +16457,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1451, + "id": 1494, "name": "Identifier", - "src": "10783:5:4" + "src": "11208:5:4" }, { "attributes": { @@ -16013,43 +16483,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1452, + "id": 1495, "name": "Identifier", - "src": "10789:3:4" + "src": "11214:3:4" } ], - "id": 1453, + "id": 1496, "name": "MemberAccess", - "src": "10789:10:4" + "src": "11214:10:4" } ], - "id": 1454, + "id": 1497, "name": "IndexAccess", - "src": "10783:17:4" + "src": "11208:17:4" } ], - "id": 1455, + "id": 1498, "name": "MemberAccess", - "src": "10783:35:4" + "src": "11208:35:4" } ], - "id": 1456, + "id": 1499, "name": "MemberAccess", - "src": "10783:42:4" + "src": "11208:42:4" } ], - "id": 1457, + "id": 1500, "name": "UnaryOperation", - "src": "10783:44:4" + "src": "11208:44:4" } ], - "id": 1458, + "id": 1501, "name": "ExpressionStatement", - "src": "10783:44:4" + "src": "11208:44:4" }, { "attributes": { @@ -16091,7 +16561,7 @@ "isPure": false, "lValueRequested": false, "member_name": "physicalAddresses", - "referencedDeclaration": 422, + "referencedDeclaration": 435, "type": "struct ProofOfPhysicalAddress.PhysicalAddress storage ref[] storage ref" }, "children": [ @@ -16111,13 +16581,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1459, + "id": 1502, "name": "Identifier", - "src": "10842:5:4" + "src": "11267:5:4" }, { "attributes": { @@ -16137,33 +16607,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1460, + "id": 1503, "name": "Identifier", - "src": "10848:3:4" + "src": "11273:3:4" } ], - "id": 1461, + "id": 1504, "name": "MemberAccess", - "src": "10848:10:4" + "src": "11273:10:4" } ], - "id": 1462, + "id": 1505, "name": "IndexAccess", - "src": "10842:17:4" + "src": "11267:17:4" } ], - "id": 1463, + "id": 1506, "name": "MemberAccess", - "src": "10842:35:4" + "src": "11267:35:4" } ], - "id": 1464, + "id": 1507, "name": "MemberAccess", - "src": "10842:42:4" + "src": "11267:42:4" }, { "attributes": { @@ -16178,14 +16648,14 @@ "type": "int_const 0", "value": "0" }, - "id": 1465, + "id": 1508, "name": "Literal", - "src": "10888:1:4" + "src": "11313:1:4" } ], - "id": 1466, + "id": 1509, "name": "BinaryOperation", - "src": "10842:47:4" + "src": "11267:47:4" }, { "children": [ @@ -16219,13 +16689,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 427, + "referencedDeclaration": 440, "type": "mapping(address => struct ProofOfPhysicalAddress.User storage ref)", "value": "users" }, - "id": 1467, + "id": 1510, "name": "Identifier", - "src": "10912:5:4" + "src": "11337:5:4" }, { "attributes": { @@ -16245,43 +16715,43 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1468, + "id": 1511, "name": "Identifier", - "src": "10918:3:4" + "src": "11343:3:4" } ], - "id": 1469, + "id": 1512, "name": "MemberAccess", - "src": "10918:10:4" + "src": "11343:10:4" } ], - "id": 1470, + "id": 1513, "name": "IndexAccess", - "src": "10912:17:4" + "src": "11337:17:4" } ], - "id": 1471, + "id": 1514, "name": "UnaryOperation", - "src": "10905:24:4" + "src": "11330:24:4" } ], - "id": 1472, + "id": 1515, "name": "ExpressionStatement", - "src": "10905:24:4" + "src": "11330:24:4" } ], - "id": 1473, + "id": 1516, "name": "Block", - "src": "10891:49:4" + "src": "11316:49:4" } ], - "id": 1474, + "id": 1517, "name": "IfStatement", - "src": "10838:102:4" + "src": "11263:102:4" }, { "children": [ @@ -16315,13 +16785,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 453, + "referencedDeclaration": 466, "type": "function (address,bytes32)", "value": "LogAddressUnregistered" }, - "id": 1475, + "id": 1518, "name": "Identifier", - "src": "10950:22:4" + "src": "11375:22:4" }, { "attributes": { @@ -16341,18 +16811,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1476, + "id": 1519, "name": "Identifier", - "src": "10973:3:4" + "src": "11398:3:4" } ], - "id": 1477, + "id": 1520, "name": "MemberAccess", - "src": "10973:10:4" + "src": "11398:10:4" }, { "attributes": { @@ -16360,33 +16830,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1378, + "referencedDeclaration": 1421, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 1478, + "id": 1521, "name": "Identifier", - "src": "10985:16:4" + "src": "11410:16:4" } ], - "id": 1479, + "id": 1522, "name": "FunctionCall", - "src": "10950:52:4" + "src": "11375:52:4" } ], - "id": 1480, + "id": 1523, "name": "ExpressionStatement", - "src": "10950:52:4" + "src": "11375:52:4" } ], - "id": 1481, + "id": 1524, "name": "Block", - "src": "10049:960:4" + "src": "10474:960:4" } ], - "id": 1482, + "id": 1525, "name": "FunctionDefinition", - "src": "9903:1106:4" + "src": "10328:1106:4" }, { "attributes": { @@ -16395,7 +16865,7 @@ "isConstructor": false, "name": "confirmAddress", "payable": false, - "scope": 1583, + "scope": 1678, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -16407,7 +16877,7 @@ "attributes": { "constant": false, "name": "confirmationCodePlain", - "scope": 1582, + "scope": 1625, "stateVariable": false, "storageLocation": "default", "type": "string memory", @@ -16420,20 +16890,20 @@ "name": "string", "type": "string storage pointer" }, - "id": 1483, + "id": 1526, "name": "ElementaryTypeName", - "src": "11039:6:4" + "src": "11464:6:4" } ], - "id": 1484, + "id": 1527, "name": "VariableDeclaration", - "src": "11039:28:4" + "src": "11464:28:4" }, { "attributes": { "constant": false, "name": "sigV", - "scope": 1582, + "scope": 1625, "stateVariable": false, "storageLocation": "default", "type": "uint8", @@ -16446,20 +16916,20 @@ "name": "uint8", "type": "uint8" }, - "id": 1485, + "id": 1528, "name": "ElementaryTypeName", - "src": "11069:5:4" + "src": "11494:5:4" } ], - "id": 1486, + "id": 1529, "name": "VariableDeclaration", - "src": "11069:10:4" + "src": "11494:10:4" }, { "attributes": { "constant": false, "name": "sigR", - "scope": 1582, + "scope": 1625, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -16472,20 +16942,20 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1487, + "id": 1530, "name": "ElementaryTypeName", - "src": "11081:7:4" + "src": "11506:7:4" } ], - "id": 1488, + "id": 1531, "name": "VariableDeclaration", - "src": "11081:12:4" + "src": "11506:12:4" }, { "attributes": { "constant": false, "name": "sigS", - "scope": 1582, + "scope": 1625, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -16498,19 +16968,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1489, + "id": 1532, "name": "ElementaryTypeName", - "src": "11095:7:4" + "src": "11520:7:4" } ], - "id": 1490, + "id": 1533, "name": "VariableDeclaration", - "src": "11095:12:4" + "src": "11520:12:4" } ], - "id": 1491, + "id": 1534, "name": "ParameterList", - "src": "11038:70:4" + "src": "11463:70:4" }, { "attributes": { @@ -16519,9 +16989,9 @@ ] }, "children": [], - "id": 1496, + "id": 1539, "name": "ParameterList", - "src": "11152:0:4" + "src": "11577:0:4" }, { "children": [ @@ -16531,13 +17001,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 482, + "referencedDeclaration": 503, "type": "modifier (address)", "value": "checkUserExists" }, - "id": 1492, + "id": 1535, "name": "Identifier", - "src": "11120:15:4" + "src": "11545:15:4" }, { "attributes": { @@ -16557,23 +17027,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1493, + "id": 1536, "name": "Identifier", - "src": "11136:3:4" + "src": "11561:3:4" } ], - "id": 1494, + "id": 1537, "name": "MemberAccess", - "src": "11136:10:4" + "src": "11561:10:4" } ], - "id": 1495, + "id": 1538, "name": "ModifierInvocation", - "src": "11120:27:4" + "src": "11545:27:4" }, { "children": [ @@ -16605,13 +17075,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1497, + "id": 1540, "name": "Identifier", - "src": "11162:7:4" + "src": "11587:7:4" }, { "attributes": { @@ -16670,9 +17140,9 @@ "type": "type(bytes storage pointer)", "value": "bytes" }, - "id": 1498, + "id": 1541, "name": "ElementaryTypeNameExpression", - "src": "11170:5:4" + "src": "11595:5:4" }, { "attributes": { @@ -16680,23 +17150,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1484, + "referencedDeclaration": 1527, "type": "string memory", "value": "confirmationCodePlain" }, - "id": 1499, + "id": 1542, "name": "Identifier", - "src": "11176:21:4" + "src": "11601:21:4" } ], - "id": 1500, + "id": 1543, "name": "FunctionCall", - "src": "11170:28:4" + "src": "11595:28:4" } ], - "id": 1501, + "id": 1544, "name": "MemberAccess", - "src": "11170:35:4" + "src": "11595:35:4" }, { "attributes": { @@ -16711,29 +17181,29 @@ "type": "int_const 0", "value": "0" }, - "id": 1502, + "id": 1545, "name": "Literal", - "src": "11208:1:4" + "src": "11633:1:4" } ], - "id": 1503, + "id": 1546, "name": "BinaryOperation", - "src": "11170:39:4" + "src": "11595:39:4" } ], - "id": 1504, + "id": 1547, "name": "FunctionCall", - "src": "11162:48:4" + "src": "11587:48:4" } ], - "id": 1505, + "id": 1548, "name": "ExpressionStatement", - "src": "11162:48:4" + "src": "11587:48:4" }, { "attributes": { "assignments": [ - 1507 + 1550 ] }, "children": [ @@ -16741,7 +17211,7 @@ "attributes": { "constant": false, "name": "data", - "scope": 1582, + "scope": 1625, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -16754,14 +17224,14 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1506, + "id": 1549, "name": "ElementaryTypeName", - "src": "11221:7:4" + "src": "11646:7:4" } ], - "id": 1507, + "id": 1550, "name": "VariableDeclaration", - "src": "11221:12:4" + "src": "11646:12:4" }, { "attributes": { @@ -16793,13 +17263,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1589, + "referencedDeclaration": 1814, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1508, + "id": 1551, "name": "Identifier", - "src": "11236:9:4" + "src": "11661:9:4" }, { "attributes": { @@ -16819,18 +17289,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1509, + "id": 1552, "name": "Identifier", - "src": "11259:3:4" + "src": "11684:3:4" } ], - "id": 1510, + "id": 1553, "name": "MemberAccess", - "src": "11259:10:4" + "src": "11684:10:4" }, { "attributes": { @@ -16838,23 +17308,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1484, + "referencedDeclaration": 1527, "type": "string memory", "value": "confirmationCodePlain" }, - "id": 1511, + "id": 1554, "name": "Identifier", - "src": "11283:21:4" + "src": "11708:21:4" } ], - "id": 1512, + "id": 1555, "name": "FunctionCall", - "src": "11236:78:4" + "src": "11661:78:4" } ], - "id": 1513, + "id": 1556, "name": "VariableDeclarationStatement", - "src": "11221:93:4" + "src": "11646:93:4" }, { "children": [ @@ -16884,13 +17354,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1514, + "id": 1557, "name": "Identifier", - "src": "11324:7:4" + "src": "11749:7:4" }, { "attributes": { @@ -16930,13 +17400,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 517, + "referencedDeclaration": 538, "type": "function (bytes32,uint8,bytes32,bytes32) view returns (bool)", "value": "signerIsValid" }, - "id": 1515, + "id": 1558, "name": "Identifier", - "src": "11332:13:4" + "src": "11757:13:4" }, { "attributes": { @@ -16944,13 +17414,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1507, + "referencedDeclaration": 1550, "type": "bytes32", "value": "data" }, - "id": 1516, + "id": 1559, "name": "Identifier", - "src": "11346:4:4" + "src": "11771:4:4" }, { "attributes": { @@ -16958,13 +17428,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1486, + "referencedDeclaration": 1529, "type": "uint8", "value": "sigV" }, - "id": 1517, + "id": 1560, "name": "Identifier", - "src": "11352:4:4" + "src": "11777:4:4" }, { "attributes": { @@ -16972,13 +17442,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1488, + "referencedDeclaration": 1531, "type": "bytes32", "value": "sigR" }, - "id": 1518, + "id": 1561, "name": "Identifier", - "src": "11358:4:4" + "src": "11783:4:4" }, { "attributes": { @@ -16986,28 +17456,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1490, + "referencedDeclaration": 1533, "type": "bytes32", "value": "sigS" }, - "id": 1519, + "id": 1562, "name": "Identifier", - "src": "11364:4:4" + "src": "11789:4:4" } ], - "id": 1520, + "id": 1563, "name": "FunctionCall", - "src": "11332:37:4" + "src": "11757:37:4" } ], - "id": 1521, + "id": 1564, "name": "FunctionCall", - "src": "11324:46:4" + "src": "11749:46:4" } ], - "id": 1522, + "id": 1565, "name": "ExpressionStatement", - "src": "11324:46:4" + "src": "11749:46:4" }, { "attributes": { @@ -17021,7 +17491,7 @@ "attributes": { "constant": false, "name": "found", - "scope": 1582, + "scope": 1625, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -17034,19 +17504,19 @@ "name": "bool", "type": "bool" }, - "id": 1523, + "id": 1566, "name": "ElementaryTypeName", - "src": "11381:4:4" + "src": "11806:4:4" } ], - "id": 1524, + "id": 1567, "name": "VariableDeclaration", - "src": "11381:10:4" + "src": "11806:10:4" } ], - "id": 1525, + "id": 1568, "name": "VariableDeclarationStatement", - "src": "11381:10:4" + "src": "11806:10:4" }, { "attributes": { @@ -17060,7 +17530,7 @@ "attributes": { "constant": false, "name": "ai", - "scope": 1582, + "scope": 1625, "stateVariable": false, "storageLocation": "default", "type": "uint256", @@ -17073,19 +17543,19 @@ "name": "uint", "type": "uint256" }, - "id": 1526, + "id": 1569, "name": "ElementaryTypeName", - "src": "11401:4:4" + "src": "11826:4:4" } ], - "id": 1527, + "id": 1570, "name": "VariableDeclaration", - "src": "11401:7:4" + "src": "11826:7:4" } ], - "id": 1528, + "id": 1571, "name": "VariableDeclarationStatement", - "src": "11401:7:4" + "src": "11826:7:4" }, { "attributes": { @@ -17099,7 +17569,7 @@ "attributes": { "constant": false, "name": "confirmed", - "scope": 1582, + "scope": 1625, "stateVariable": false, "storageLocation": "default", "type": "bool", @@ -17112,19 +17582,19 @@ "name": "bool", "type": "bool" }, - "id": 1529, + "id": 1572, "name": "ElementaryTypeName", - "src": "11418:4:4" + "src": "11843:4:4" } ], - "id": 1530, + "id": 1573, "name": "VariableDeclaration", - "src": "11418:14:4" + "src": "11843:14:4" } ], - "id": 1531, + "id": 1574, "name": "VariableDeclarationStatement", - "src": "11418:14:4" + "src": "11843:14:4" }, { "attributes": { @@ -17138,7 +17608,7 @@ "attributes": { "constant": false, "name": "keccakIdentifier", - "scope": 1582, + "scope": 1625, "stateVariable": false, "storageLocation": "default", "type": "bytes32", @@ -17151,19 +17621,19 @@ "name": "bytes32", "type": "bytes32" }, - "id": 1532, + "id": 1575, "name": "ElementaryTypeName", - "src": "11442:7:4" + "src": "11867:7:4" } ], - "id": 1533, + "id": 1576, "name": "VariableDeclaration", - "src": "11442:24:4" + "src": "11867:24:4" } ], - "id": 1534, + "id": 1577, "name": "VariableDeclarationStatement", - "src": "11442:24:4" + "src": "11867:24:4" }, { "children": [ @@ -17195,13 +17665,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1524, + "referencedDeclaration": 1567, "type": "bool", "value": "found" }, - "id": 1535, + "id": 1578, "name": "Identifier", - "src": "11477:5:4" + "src": "11902:5:4" }, { "attributes": { @@ -17209,13 +17679,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1527, + "referencedDeclaration": 1570, "type": "uint256", "value": "ai" }, - "id": 1536, + "id": 1579, "name": "Identifier", - "src": "11484:2:4" + "src": "11909:2:4" }, { "attributes": { @@ -17223,13 +17693,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1530, + "referencedDeclaration": 1573, "type": "bool", "value": "confirmed" }, - "id": 1537, + "id": 1580, "name": "Identifier", - "src": "11488:9:4" + "src": "11913:9:4" }, { "attributes": { @@ -17237,18 +17707,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1533, + "referencedDeclaration": 1576, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 1538, + "id": 1581, "name": "Identifier", - "src": "11499:16:4" + "src": "11924:16:4" } ], - "id": 1539, + "id": 1582, "name": "TupleExpression", - "src": "11476:40:4" + "src": "11901:40:4" }, { "attributes": { @@ -17280,13 +17750,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 782, + "referencedDeclaration": 803, "type": "function (address,bytes32) view returns (bool,uint256,bool,bytes32)", "value": "userAddressByConfirmationCode" }, - "id": 1540, + "id": 1583, "name": "Identifier", - "src": "11519:29:4" + "src": "11944:29:4" }, { "attributes": { @@ -17306,18 +17776,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1541, + "id": 1584, "name": "Identifier", - "src": "11562:3:4" + "src": "11987:3:4" } ], - "id": 1542, + "id": 1585, "name": "MemberAccess", - "src": "11562:10:4" + "src": "11987:10:4" }, { "attributes": { @@ -17345,13 +17815,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1589, + "referencedDeclaration": 1814, "type": "function () pure returns (bytes32)", "value": "keccak256" }, - "id": 1543, + "id": 1586, "name": "Identifier", - "src": "11586:9:4" + "src": "12011:9:4" }, { "attributes": { @@ -17359,33 +17829,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1484, + "referencedDeclaration": 1527, "type": "string memory", "value": "confirmationCodePlain" }, - "id": 1544, + "id": 1587, "name": "Identifier", - "src": "11596:21:4" + "src": "12021:21:4" } ], - "id": 1545, + "id": 1588, "name": "FunctionCall", - "src": "11586:32:4" + "src": "12011:32:4" } ], - "id": 1546, + "id": 1589, "name": "FunctionCall", - "src": "11519:109:4" + "src": "11944:109:4" } ], - "id": 1547, + "id": 1590, "name": "Assignment", - "src": "11476:152:4" + "src": "11901:152:4" } ], - "id": 1548, + "id": 1591, "name": "ExpressionStatement", - "src": "11476:152:4" + "src": "11901:152:4" }, { "children": [ @@ -17415,13 +17885,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1549, + "id": 1592, "name": "Identifier", - "src": "11638:7:4" + "src": "12063:7:4" }, { "attributes": { @@ -17429,23 +17899,23 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1524, + "referencedDeclaration": 1567, "type": "bool", "value": "found" }, - "id": 1550, + "id": 1593, "name": "Identifier", - "src": "11646:5:4" + "src": "12071:5:4" } ], - "id": 1551, + "id": 1594, "name": "FunctionCall", - "src": "11638:14:4" + "src": "12063:14:4" } ], - "id": 1552, + "id": 1595, "name": "ExpressionStatement", - "src": "11638:14:4" + "src": "12063:14:4" }, { "children": [ @@ -17475,13 +17945,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1598, + "referencedDeclaration": 1823, "type": "function (bool) pure", "value": "require" }, - "id": 1553, + "id": 1596, "name": "Identifier", - "src": "11662:7:4" + "src": "12087:7:4" }, { "attributes": { @@ -17501,28 +17971,28 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1530, + "referencedDeclaration": 1573, "type": "bool", "value": "confirmed" }, - "id": 1554, + "id": 1597, "name": "Identifier", - "src": "11671:9:4" + "src": "12096:9:4" } ], - "id": 1555, + "id": 1598, "name": "UnaryOperation", - "src": "11670:10:4" + "src": "12095:10:4" } ], - "id": 1556, + "id": 1599, "name": "FunctionCall", - "src": "11662:19:4" + "src": "12087:19:4" } ], - "id": 1557, + "id": 1600, "name": "ExpressionStatement", - "src": "11662:19:4" + "src": "12087:19:4" }, { "children": [ @@ -17562,7 +18032,7 @@ "isPure": false, "lValueRequested": false, "member_name": "setClaim", - "referencedDeclaration": 165, + "referencedDeclaration": 234, "type": "function (address,bytes32,bytes32) external" }, "children": [ @@ -17572,18 +18042,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 377, + "referencedDeclaration": 390, "type": "contract EthereumClaimsRegistryInterface", "value": "registry" }, - "id": 1558, + "id": 1601, "name": "Identifier", - "src": "11692:8:4" + "src": "12117:8:4" } ], - "id": 1560, + "id": 1603, "name": "MemberAccess", - "src": "11692:17:4" + "src": "12117:17:4" }, { "attributes": { @@ -17603,18 +18073,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1561, + "id": 1604, "name": "Identifier", - "src": "11710:3:4" + "src": "12135:3:4" } ], - "id": 1562, + "id": 1605, "name": "MemberAccess", - "src": "11710:10:4" + "src": "12135:10:4" }, { "attributes": { @@ -17622,13 +18092,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1533, + "referencedDeclaration": 1576, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 1563, + "id": 1606, "name": "Identifier", - "src": "11722:16:4" + "src": "12147:16:4" }, { "attributes": { @@ -17658,7 +18128,7 @@ "isPure": false, "lValueRequested": false, "member_name": "encode", - "referencedDeclaration": 306, + "referencedDeclaration": 318, "type": "function (uint256) pure returns (bytes32)" }, "children": [ @@ -17668,18 +18138,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 367, + "referencedDeclaration": 379, "type": "type(library PhysicalAddressClaim)", "value": "PhysicalAddressClaim" }, - "id": 1564, + "id": 1607, "name": "Identifier", - "src": "11740:20:4" + "src": "12165:20:4" } ], - "id": 1565, + "id": 1608, "name": "MemberAccess", - "src": "11740:27:4" + "src": "12165:27:4" }, { "attributes": { @@ -17699,33 +18169,33 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1587, + "referencedDeclaration": 1812, "type": "block", "value": "block" }, - "id": 1566, + "id": 1609, "name": "Identifier", - "src": "11768:5:4" + "src": "12193:5:4" } ], - "id": 1567, + "id": 1610, "name": "MemberAccess", - "src": "11768:12:4" + "src": "12193:12:4" } ], - "id": 1568, + "id": 1611, "name": "FunctionCall", - "src": "11740:41:4" + "src": "12165:41:4" } ], - "id": 1569, + "id": 1612, "name": "FunctionCall", - "src": "11692:90:4" + "src": "12117:90:4" } ], - "id": 1570, + "id": 1613, "name": "ExpressionStatement", - "src": "11692:90:4" + "src": "12117:90:4" }, { "children": [ @@ -17746,13 +18216,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 433, + "referencedDeclaration": 446, "type": "uint64", "value": "totalConfirmed" }, - "id": 1571, + "id": 1614, "name": "Identifier", - "src": "11792:14:4" + "src": "12217:14:4" }, { "attributes": { @@ -17767,19 +18237,19 @@ "type": "int_const 1", "value": "1" }, - "id": 1572, + "id": 1615, "name": "Literal", - "src": "11810:1:4" + "src": "12235:1:4" } ], - "id": 1573, + "id": 1616, "name": "Assignment", - "src": "11792:19:4" + "src": "12217:19:4" } ], - "id": 1574, + "id": 1617, "name": "ExpressionStatement", - "src": "11792:19:4" + "src": "12217:19:4" }, { "children": [ @@ -17813,13 +18283,13 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 459, + "referencedDeclaration": 472, "type": "function (address,bytes32)", "value": "LogAddressConfirmed" }, - "id": 1575, + "id": 1618, "name": "Identifier", - "src": "11822:19:4" + "src": "12247:19:4" }, { "attributes": { @@ -17839,18 +18309,18 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1595, + "referencedDeclaration": 1820, "type": "msg", "value": "msg" }, - "id": 1576, + "id": 1619, "name": "Identifier", - "src": "11842:3:4" + "src": "12267:3:4" } ], - "id": 1577, + "id": 1620, "name": "MemberAccess", - "src": "11842:10:4" + "src": "12267:10:4" }, { "attributes": { @@ -17858,49 +18328,842 @@ "overloadedDeclarations": [ null ], - "referencedDeclaration": 1533, + "referencedDeclaration": 1576, "type": "bytes32", "value": "keccakIdentifier" }, - "id": 1578, + "id": 1621, "name": "Identifier", - "src": "11854:16:4" + "src": "12279:16:4" } ], - "id": 1579, + "id": 1622, "name": "FunctionCall", - "src": "11822:49:4" + "src": "12247:49:4" } ], - "id": 1580, + "id": 1623, "name": "ExpressionStatement", - "src": "11822:49:4" + "src": "12247:49:4" } ], - "id": 1581, + "id": 1624, "name": "Block", - "src": "11152:726:4" + "src": "11577:726:4" } ], - "id": 1582, + "id": 1625, "name": "FunctionDefinition", - "src": "11015:863:4" - } - ], - "id": 1583, - "name": "ContractDefinition", - "src": "149:11731:4" - } - ], - "id": 1584, - "name": "SourceUnit", - "src": "0:11881:4" - }, - "compiler": { - "name": "solc", - "version": "0.4.19+commit.c4cbbb05.Emscripten.clang" + "src": "11440:863:4" + }, + { + "attributes": { + "constant": false, + "implemented": true, + "isConstructor": false, + "name": "claimTokens", + "payable": false, + "scope": 1678, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_token", + "scope": 1677, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1626, + "name": "ElementaryTypeName", + "src": "12330:7:4" + } + ], + "id": 1627, + "name": "VariableDeclaration", + "src": "12330:14:4" + }, + { + "attributes": { + "constant": false, + "name": "_to", + "scope": 1677, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1628, + "name": "ElementaryTypeName", + "src": "12346:7:4" + } + ], + "id": 1629, + "name": "VariableDeclaration", + "src": "12346:11:4" + } + ], + "id": 1630, + "name": "ParameterList", + "src": "12329:29:4" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1633, + "name": "ParameterList", + "src": "12376:0:4" + }, + { + "attributes": { + "arguments": [ + null + ] + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 491, + "type": "modifier ()", + "value": "onlyOwner" + }, + "id": 1631, + "name": "Identifier", + "src": "12366:9:4" + } + ], + "id": 1632, + "name": "ModifierInvocation", + "src": "12366:9:4" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1823, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1634, + "name": "Identifier", + "src": "12386:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1627, + "type": "address", + "value": "_token" + }, + "id": 1635, + "name": "Identifier", + "src": "12394:6:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1636, + "name": "ElementaryTypeNameExpression", + "src": "12404:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1637, + "name": "Literal", + "src": "12412:1:4" + } + ], + "id": 1638, + "name": "FunctionCall", + "src": "12404:10:4" + } + ], + "id": 1639, + "name": "BinaryOperation", + "src": "12394:20:4" + } + ], + "id": 1640, + "name": "FunctionCall", + "src": "12386:29:4" + } + ], + "id": 1641, + "name": "ExpressionStatement", + "src": "12386:29:4" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1823, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1642, + "name": "Identifier", + "src": "12425:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1629, + "type": "address", + "value": "_to" + }, + "id": 1643, + "name": "Identifier", + "src": "12433:3:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1644, + "name": "ElementaryTypeNameExpression", + "src": "12440:7:4" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1645, + "name": "Literal", + "src": "12448:1:4" + } + ], + "id": 1646, + "name": "FunctionCall", + "src": "12440:10:4" + } + ], + "id": 1647, + "name": "BinaryOperation", + "src": "12433:17:4" + } + ], + "id": 1648, + "name": "FunctionCall", + "src": "12425:26:4" + } + ], + "id": 1649, + "name": "ExpressionStatement", + "src": "12425:26:4" + }, + { + "attributes": { + "assignments": [ + 1651 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "token", + "scope": 1677, + "stateVariable": false, + "storageLocation": "default", + "type": "contract ERC20", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ERC20", + "referencedDeclaration": 68, + "type": "contract ERC20" + }, + "id": 1650, + "name": "UserDefinedTypeName", + "src": "12462:5:4" + } + ], + "id": 1651, + "name": "VariableDeclaration", + "src": "12462:11:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "contract ERC20", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 68, + "type": "type(contract ERC20)", + "value": "ERC20" + }, + "id": 1652, + "name": "Identifier", + "src": "12476:5:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1627, + "type": "address", + "value": "_token" + }, + "id": 1653, + "name": "Identifier", + "src": "12482:6:4" + } + ], + "id": 1654, + "name": "FunctionCall", + "src": "12476:13:4" + } + ], + "id": 1655, + "name": "VariableDeclarationStatement", + "src": "12462:27:4" + }, + { + "attributes": { + "assignments": [ + 1657 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "balance", + "scope": 1677, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1656, + "name": "ElementaryTypeName", + "src": "12499:7:4" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "12499:15:4" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ProofOfPhysicalAddress_$1678", + "typeString": "contract ProofOfPhysicalAddress" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balanceOf", + "referencedDeclaration": 13, + "type": "function (address) view external returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1651, + "type": "contract ERC20", + "value": "token" + }, + "id": 1658, + "name": "Identifier", + "src": "12517:5:4" + } + ], + "id": 1659, + "name": "MemberAccess", + "src": "12517:15:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1839, + "type": "contract ProofOfPhysicalAddress", + "value": "this" + }, + "id": 1660, + "name": "Identifier", + "src": "12533:4:4" + } + ], + "id": 1661, + "name": "FunctionCall", + "src": "12517:21:4" + } + ], + "id": 1662, + "name": "VariableDeclarationStatement", + "src": "12499:39:4" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "transfer", + "referencedDeclaration": 31, + "type": "function (address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1651, + "type": "contract ERC20", + "value": "token" + }, + "id": 1663, + "name": "Identifier", + "src": "12548:5:4" + } + ], + "id": 1665, + "name": "MemberAccess", + "src": "12548:14:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1629, + "type": "address", + "value": "_to" + }, + "id": 1666, + "name": "Identifier", + "src": "12563:3:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "uint256", + "value": "balance" + }, + "id": 1667, + "name": "Identifier", + "src": "12568:7:4" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "12548:28:4" + } + ], + "id": 1669, + "name": "ExpressionStatement", + "src": "12548:28:4" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 480, + "type": "function (address,address,uint256)", + "value": "LogClaimedTokens" + }, + "id": 1670, + "name": "Identifier", + "src": "12586:16:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1627, + "type": "address", + "value": "_token" + }, + "id": 1671, + "name": "Identifier", + "src": "12603:6:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1629, + "type": "address", + "value": "_to" + }, + "id": 1672, + "name": "Identifier", + "src": "12611:3:4" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "uint256", + "value": "balance" + }, + "id": 1673, + "name": "Identifier", + "src": "12616:7:4" + } + ], + "id": 1674, + "name": "FunctionCall", + "src": "12586:38:4" + } + ], + "id": 1675, + "name": "ExpressionStatement", + "src": "12586:38:4" + } + ], + "id": 1676, + "name": "Block", + "src": "12376:255:4" + } + ], + "id": 1677, + "name": "FunctionDefinition", + "src": "12309:322:4" + } + ], + "id": 1678, + "name": "ContractDefinition", + "src": "171:12462:4" + } + ], + "id": 1679, + "name": "SourceUnit", + "src": "0:12634:4" + }, + "compiler": { + "name": "solc", + "version": "0.4.19+commit.c4cbbb05.Emscripten.clang" + }, + "networks": { + "1526446265155": { + "events": {}, + "links": { + "PhysicalAddressClaim": "0x523adb70c0e02677c0211b2c543dc43b023ae3dd" + }, + "address": "0xda0b9c083a90e36b7e658f3dc229227b7060d2f0" + } }, - "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-05-16T14:35:46.842Z" + "updatedAt": "2018-05-16T17:20:02.573Z" } \ No newline at end of file diff --git a/blockchain/contracts/ERC20.sol b/blockchain/contracts/ERC20.sol new file mode 100644 index 00000000..90faf8ae --- /dev/null +++ b/blockchain/contracts/ERC20.sol @@ -0,0 +1,14 @@ +pragma solidity 0.4.19; + + +contract ERC20 { + function totalSupply() public constant returns (uint); + function balanceOf(address tokenOwner) public constant returns (uint balance); + function allowance(address tokenOwner, address spender) public constant returns (uint remaining); + function transfer(address to, uint tokens) public returns (bool success); + function approve(address spender, uint tokens) public returns (bool success); + function transferFrom(address from, address to, uint tokens) public returns (bool success); + + event Transfer(address indexed from, address indexed to, uint tokens); + event Approval(address indexed tokenOwner, address indexed spender, uint tokens); +} diff --git a/blockchain/contracts/ProofOfPhysicalAddress.sol b/blockchain/contracts/ProofOfPhysicalAddress.sol index 06de9c6b..f7924f2b 100644 --- a/blockchain/contracts/ProofOfPhysicalAddress.sol +++ b/blockchain/contracts/ProofOfPhysicalAddress.sol @@ -2,6 +2,7 @@ pragma solidity 0.4.19; import "./EthereumClaimsRegistryInterface.sol"; import "./PhysicalAddressClaim.sol"; +import "./ERC20.sol"; // Checks -> Effects -> Interactions @@ -52,6 +53,7 @@ contract ProofOfPhysicalAddress { event LogAddressRegistered(address indexed wallet, bytes32 keccakIdentifier); event LogAddressUnregistered(address indexed wallet, bytes32 keccakIdentifier); event LogAddressConfirmed(address indexed wallet, bytes32 keccakIdentifier); + event LogClaimedTokens(address token, address to, uint256 amount); // Modifiers: modifier onlyOwner() { @@ -367,4 +369,14 @@ contract ProofOfPhysicalAddress { LogAddressConfirmed(msg.sender, keccakIdentifier); } + + function claimTokens(address _token, address _to) public onlyOwner { + require(_token != address(0)); + require(_to != address(0)); + + ERC20 token = ERC20(_token); + uint256 balance = token.balanceOf(this); + token.transfer(_to, balance); + LogClaimedTokens(_token, _to, balance); + } } diff --git a/blockchain/contracts/TestERC20.sol b/blockchain/contracts/TestERC20.sol new file mode 100644 index 00000000..f7dbd7df --- /dev/null +++ b/blockchain/contracts/TestERC20.sol @@ -0,0 +1,44 @@ +pragma solidity 0.4.19; + +import "./ERC20.sol"; + + +// contract used in the tests for ProofOfPhysicalAddress +contract TestERC20 is ERC20 { + uint256 public _totalSupply = 1000; + + mapping(address => uint256) balances; + + function TestERC20() public { + balances[msg.sender] = _totalSupply; + } + + function totalSupply() public constant returns (uint256) { + return _totalSupply; + } + + function balanceOf(address tokenOwner) public constant returns (uint256) { + return balances[tokenOwner]; + } + + function transfer(address to, uint256 tokens) public returns (bool success) { + balances[msg.sender] = balances[msg.sender] - tokens; + balances[to] = balances[to] + tokens; + return true; + } + + // not implemented + // the bodies are just to avoid compiler warnings + function allowance(address tokenOwner, address spender) public constant returns (uint remaining) { + tokenOwner; spender; + return 0; + } + function approve(address spender, uint tokens) public returns (bool success) { + spender; tokens; + return false; + } + function transferFrom(address from, address to, uint tokens) public returns (bool success) { + from; to; tokens; + return false; + } +} diff --git a/blockchain/migrations/1522104575_popa.js b/blockchain/migrations/1522104575_popa.js index bbcae9b8..f3c9b3b1 100644 --- a/blockchain/migrations/1522104575_popa.js +++ b/blockchain/migrations/1522104575_popa.js @@ -1,6 +1,7 @@ var POPA = artifacts.require('ProofOfPhysicalAddress'); var PhysicalAddressClaim = artifacts.require('PhysicalAddressClaim'); var EthereumClaimsRegistry = artifacts.require('EthereumClaimsRegistry'); +var TestERC20 = artifacts.require('TestERC20'); module.exports = function(deployer, network) { return deployer.then(async () => { @@ -8,7 +9,7 @@ module.exports = function(deployer, network) { await deployer.link(PhysicalAddressClaim, POPA); let ethereumClaimsRegistryAddress = null; - if (network === 'development' || network === 'coverage') { + if (network === 'development' || network === 'test' || network === 'coverage') { await deployer.deploy(EthereumClaimsRegistry); let ethereumClaimsRegistry = await EthereumClaimsRegistry.deployed(); ethereumClaimsRegistryAddress = ethereumClaimsRegistry.address; @@ -16,6 +17,10 @@ module.exports = function(deployer, network) { ethereumClaimsRegistryAddress = '0xaca1bcd8d0f5a9bfc95aff331da4c250cd9ac2da'; } + if (network === 'test' || network === 'coverage') { + await deployer.deploy(TestERC20); + } + await deployer.deploy(POPA, ethereumClaimsRegistryAddress); }); }; diff --git a/blockchain/package.json b/blockchain/package.json index 7da1f489..78f2d7fd 100644 --- a/blockchain/package.json +++ b/blockchain/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "scripts": { "coverage": "NODE_ENV=test solidity-coverage", - "test": "NODE_ENV=test truffle test" + "test": "NODE_ENV=test truffle test --network test" }, "dependencies": {}, "devDependencies": { diff --git a/blockchain/test/proof_of_physical_address.js b/blockchain/test/proof_of_physical_address.js index 533c87fe..ca9a18ea 100644 --- a/blockchain/test/proof_of_physical_address.js +++ b/blockchain/test/proof_of_physical_address.js @@ -1,4 +1,5 @@ const ProofOfPhysicalAddress = artifacts.require('ProofOfPhysicalAddress'); +const TestERC20 = artifacts.require('TestERC20'); const BigNumber = require('bignumber.js'); // solidity-coverage copies all the files to a directory one level deeper, so @@ -973,6 +974,53 @@ contract('setRegistry', function(accounts) { }); }); +contract('claimTokens', function(accounts) { + contract('', () => { + it('should allow the owner to send tokens in the contract to another user', async () => { + const popa = await ProofOfPhysicalAddress.deployed(); + const token = await TestERC20.deployed(); + + const initialBalance = Number(await token.balanceOf(accounts[0])); + + await token.transfer(popa.address, initialBalance); + + assert.equal(Number(await token.balanceOf(popa.address)), initialBalance); + assert.equal(Number(await token.balanceOf(accounts[0])), 0); + + await popa.claimTokens(token.address, accounts[0]); + + assert.equal(Number(await token.balanceOf(popa.address)), 0); + assert.equal(Number(await token.balanceOf(accounts[0])), initialBalance); + }); + }); + + contract('', () => { + it('should revert if token address is 0', async () => { + const popa = await ProofOfPhysicalAddress.deployed(); + + return popa.claimTokens('0x0', accounts[0]) + .then( + () => assert.fail(), // should reject + () => {} + ); + }); + }); + + contract('', () => { + it('should revert if recipient address is 0', async () => { + const popa = await ProofOfPhysicalAddress.deployed(); + const token = await TestERC20.deployed(); + + return popa.claimTokens(token.address, '0x0') + .then( + () => assert.fail(), // should reject + () => {} + ); + }); + }); + +}); + contract('helpers', function(accounts) { // userExists contract('', () => {